2012-10-23 9 views
8

Sto usando cakephp V2.0.2CakePHP l'ordine di impaginazione non funziona

Sto avendo difficoltà con

$this->paginate = array(
       "fields" => array(
        "Player.join_country" 
       ), 
       "joins" => array(
        array(
         "table" => "banner_key_current_ext", 
         "alias" => "BannerKeyCurrentExt", 
         "type" => "inner", 
         "conditions" => "BannerKeyCurrentExt.banner_key_id = BannerKeyCurrent.banner_key_id" 
        ), 
        array(
         "table" => "players", 
         "alias" => "Player", 
         "type" => "inner", 
         "conditions" => "BannerKeyCurrentExt.identifier = Player.zban_player_id" . $country_condition 
        ), 
        array(
         "table" => "users", 
         "alias" => "User", 
         "type" => "inner", 
         "conditions" => "BannerKeyCurrent.user_id = User.user_id" 
        ), 
        array(
         "table" => "tag_links", 
         "alias" => "TagLinks", 
         "type" => "inner", 
         "conditions" => "TagLinks.id = BannerKeyCurrent.user_id AND TagLinks.tag_id = 710" 
        ) 
       ), 
       "conditions" => array(
        "BannerKeyCurrent.date BETWEEN ? AND ?" => array(
         $this->request->query["period_from"], 
         $this->request->query["period_to"] 
        ), 
        "BannerKeyCurrent.plan_id" => $brands_plan_map[$this->request->query["brand"]]["plans"], 
        "BannerKeyCurrent.operation_id" => $operation_ids 
       ), 
       "group" => array("Player.join_country"), 
       "order" => array(
        "Player.join_country" => "DESC" 
       ), 
       "limit" => 999999, 
       "maxLimit" => 999999 
      ); 

Tutto funziona tutti i campi, entra a far parte, di gruppo, nessun problema, ma limita l'ordinamento semplice non funzionerà. L'output dell'elemento sql_dump mostra che non viene mai aggiunto alla query.

Qualsiasi aiuto sarebbe molto apprezzato.

Grazie

+0

Che aspetto ha la tua chiamata cercapersone, e cosa significa 'debug ($ this-> modelClass)? Output dal controller? – jeremyharris

+0

Ho lo stesso problema. Qualche soluzione? – XuDing

risposta

0

Prova:

$this->Paginator->settings = array(
    "fields" => array(
       "Player.join_country" 
      ), 
      "joins" => array(
       array(
        "table" => "b... 

$pagedResults = $this->paginate('YourModel'); 
0

ci sono eventuali ordine di impaginazione da parametri nell'URL?

Paginator sovrascriverà qualsiasi ordine nella query con qualsiasi specificato nell'URL (quindi le intestazioni delle colonne di ordinamento funzionano).

Se il parametro dell'ordine fa riferimento a un campo non valido, forse la torta lo ignora dopo aver rimosso l'ordine dalla query pronta per aggiungere quello nell'URL.

8

Facendo

"order" => "Player.join_country DESC" 

lavorato per me.

Spero che ti aiuti anche tu.

+0

grazie amico, funziona, anche se strano, con array dovrebbe funzionare anche secondo la documentazione http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#find – dav

+0

Stava lavorando per me quando l'ho usato come nella documentazione. Poi ho aggiunto una condizione di filtro sul secondo argomento di paginate() e ha smesso di funzionare, fino a quando non l'ho fatto. – paulmorriss

Problemi correlati