2012-10-23 18 views
8

साथCakePHP पृष्ठांकन आदेश काम नहीं कर रहा

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

सब कुछ मैं CakePHP v2.0.2

मैं मुसीबत हो रहा है उपयोग कर रहा हूँ सभी क्षेत्रों में काम करता है, मिलती है, समूह, कोई समस्या नहीं है, लेकिन आदेश सरल अभ्यस्त काम सीमित करता है। Sql_dump तत्व को आउटपुट करने से पता चलता है कि यह क्वेरी में कभी नहीं जोड़ा गया है।

किसी भी मदद की सराहना की जाएगी।

धन्यवाद

+0

आपकी पेजिनेट कॉल कैसा दिखता है, और डीबग ($ this-> modelClass) क्या करता है; नियंत्रक से आउटपुट? – jeremyharris

+0

मुझे एक ही समस्या है। कोई भी समाधान? – XuDing

उत्तर

0

प्रयास करें:

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

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

वहाँ URL में पैरामीटर द्वारा किसी भी पृष्ठांकन आदेश हैं?

पेजिनेटर यूआरएल में निर्दिष्ट किसी भी आदेश के साथ क्वेरी में किसी ऑर्डर को ओवरराइड करेगा (इसलिए कॉलम हेडर काम करते हैं)।

यदि ऑर्डर पैरामीटर किसी अमान्य फ़ील्ड को संदर्भित करता है तो शायद यूआरएल में एक जोड़ने के लिए तैयार क्वेरी से अपना ऑर्डर हटाने के बाद केक इसे अनदेखा कर देता है।

8

"order" => "Player.join_country DESC" 

मेरे लिए काम किया ऐसा करने से।

मुझे आशा है कि यह आपकी भी मदद करेगा।

+0

धन्यवाद आदमी, यह काम करता है, हालांकि अजीब है, सरणी के साथ दस्तावेज़ों के अनुसार काम करना चाहिए http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#find – dav

+0

यह मेरे लिए काम कर रहा था जब मैंने इसे प्रलेखन में इस्तेमाल किया। फिर मैंने पेजिनेट() के दूसरे तर्क पर फ़िल्टर स्थिति जोड़ा और जब तक मैंने ऐसा नहीं किया, तब तक यह काम करना बंद कर दिया। – paulmorriss

संबंधित मुद्दे