2012-10-23 15 views
8

używam cakephp v2.0.2CakePHP Pagination zamówienie nie działa

Mam problemy z

$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 
      ); 

wszystko działa wszystkie pola, łączy, grupy, ogranicza żadnego problemu ale zamawiania proste przyzwyczajenie praca. Wyprowadzenie elementu sql_dump pokazuje, że nie jest on nigdy dodawany do zapytania.

Każda pomoc zostanie bardzo doceniona.

Dzięki

+0

Jak wygląda twoje wywołanie w paginacji i co to jest "wyjście z kontrolera" debug ($ this-> modelClass); – jeremyharris

+0

Mam ten sam problem. Jakieś rozwiązanie? – XuDing

Odpowiedz

0

Spróbuj:

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

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

Czy istnieje jakiś porządek paginacja przez parametry w adresie URL?

Paginator zastąpi dowolną kolejność w zapytaniu z dowolnymi określonymi w adresie URL (aby działały nagłówki kolumn sortowania).

Jeśli parametr zamówienia odnosi się do nieprawidłowego pola, być może ciasto zignoruje je po usunięciu zamówienia przez zapytanie gotowe do dodania w adresie URL.

8

Robiąc

"order" => "Player.join_country DESC" 

pracował dla mnie.

Mam nadzieję, że to ci pomoże.

+0

dziękuje człowiekowi, działa, choć dziwne, z tablicą powinno działać również zgodnie z dokumentacją http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#find – dav

+0

To działało dla mnie kiedy użyłem go tak, jak w dokumentacji. Następnie dodałem warunek filtru do drugiego argumentu paginate() i przestał działać, dopóki tego nie zrobiłem. – paulmorriss

Powiązane problemy