2013-06-07 8 views
13

CakePHP पृष्ठांकन तालिका क्षेत्रों में शामिल होने के लिए काम नहीं कर रहा है। लेकिन कस्टम एसक्यूएल के लिए पूछताछ ठीक काम करने के लिए शामिल हों। कृपया बाहर आने में मेरी मदद करें।CakePHP पृष्ठांकन में शामिल होने तालिका फ़ील्ड प्रकार तालिका प्रकार में शामिल होने के साथ काम नहीं कर रहा

नमूना कोड नीचे देखें .. मैं Artist.name क्रम में तालिका फ़ील्ड में शामिल होने की है।

$this->paginate = array(
     'fields' => array(
      'id', 
      'Song.title', 
      'Song.date', 
      'Artist.id AS artist_id', 
      'Artist.name AS artist_name', 
      'COUNT(SongViews.id) AS views' 
     ), 
     'group' => array('ArtistsSong.song_id'), 
     'recursive' => 0, 
     'limit' => 20, 
     'joins' => array(
      array(
       'table' => 'tbl_artists_songs', 
       'alias' => 'ArtistsSong', 
       'conditions'=> array('Song.id = ArtistsSong.song_id') 
      ),array(
       'table' => 'tbl_artists', 
       'alias' => 'Artist', 
       'conditions'=> array('Artist.id = ArtistsSong.artist_id') 
      ),array(
       'table' => 'tbl_song_views', 
       'alias' => 'SongViews', 
       'type' => 'left', 
       'conditions'=> array('SongViews.song_id = ArtistsSong.song_id') 
      ), 
     ), 
     'order' => array('Artist.name'=>'asc') 

    ); 
+0

... क्या से बाहर आते हैं? कुछ कोड प्रदान करें और जो भी आप चाहते हैं उसे बेहतर समझाएं, कृपया दो-पंक्ति "प्रश्न" – Nunser

+0

के साथ मदद करना मुश्किल है मैंने नमूना कोड जोड़ा है। इसे जाँचे। धन्यवाद –

उत्तर

16

यह केकपीएचपी में एक बग है।

हालांकि, वहाँ यह करने के लिए एक चाल है।

आप अपने प्राथमिक मॉडल में एक आभासी क्षेत्र जोड़ना चाहिए।

मान लिया जाये कि अपनी प्राथमिक मॉडल सांग है, आपको बुला रहा पृष्ठ पर अंक लगाना से पहले इस जोड़ना चाहिए:

$this->Song->virtualFields = array(
    'artist_name' => 'Artist.name' 
); 

और अब, आप artist_name द्वारा सॉर्ट कर सकते हैं।

+0

आप छँटाई .. पढ़ें CakePHP मैनुअल के लिए आभासी क्षेत्र का उपयोग नहीं कर सकते हैं - http://book.cakephp.org/2.0/en/models/virtual-fields.html#limitations-of-virtualfields –

+0

इसके साथ उपयोग करने के लिए ठीक काम करता है क्षेत्र द्वारा आदेश। जो मेरे मामले में मददगार है – Dashrath

+1

यह एक लाइफसेवर था और सॉर्टिंग और पेजिनेशन के लिए बेकार ढंग से काम करता था, धन्यवाद! – WOUNDEDStevenJones

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