2008-09-29 7 views
12

केकफ़्पी दृश्यों में पेजिनेटर सहायक का उपयोग करते समय, यह यूआरएल के कुछ हिस्सों को याद नहीं करता है जो मेरे उपयोग के लिए कस्टम हैं।पेज 2 पर जाने पर पेजिनेटर मेरे कस्टम पैरामीटर क्यों याद नहीं करता है?

उदाहरण के लिए:

http://example.org/users/index/moderators/page:2/sort:name/dir:asc 
यहाँ

मध्यस्थों एक पैरामीटर है कि मुझे उस प्रकार के आधार पर फ़िल्टर मदद करता है। लेकिन एक पेजिनेटर लिंक दबाकर इस लिंक को शामिल नहीं किया जाएगा।

उत्तर

4

ऊपर सिकंदर मोरलैंड के उत्तर में जोड़ने के लिए, यह याद रखना महत्वपूर्ण है कि केनपीएचपी 1 में वाक्यविन्यास बदल गया है।3 और अब है:

$this->Paginator->options(array('url' => $this->passedArgs)); 

यह CakePHP पुस्तक के pagination in views खंड में आगे बताया गया है।

11

गुप्त आपके विचार के लिए इस लाइन जोड़ रहा है:

$ paginator-> विकल्प (सरणी ('url' => $ this-> passedArgs));

(मैं इस सवाल-जवाब का निर्माण किया क्योंकि यह एक बहुत से पूछा सवाल है और मैं इस सवाल का जवाब बाहर खुदाई करने के लिए नहीं कर सकते, क्योंकि मैं इसे याद कर रहा रखने के लिए।)

0

$ this-> passedArgs करने के लिए पसंदीदा तरीका है दृश्य से यह।

0

आपने मुझे बचाया! इससे मुझे बहुत मदद मिली, धन्यवाद।

मुझे मूल रूप से पोस्ट ($ this-> डेटा) के माध्यम से पेजिंग घटक पर भेजे गए पैरामीटर को पारित करने के लिए एक तरीका चाहिए, इसलिए मेरी कस्टम क्वेरी उनका उपयोग जारी रखेगी।

यहाँ मैं क्या किया है:।

मेरे विचार मैं पहले $ paginator-> पिछले ('< < पिछला' सामान

$paginator->options(array('url'=>$this->data['Transaction'])); 

डाल पर

ऐसा आगे बनाया पेजिनेटर पर लिंक " .../पृष्ठ: 1/start_date: 2000-01-01% 2000: 00: 00/end_date: 3000-01-01% 2023: 59: 59/payments_recieved: 1"

तब मेरे नियंत्रक पर मैं सिर्फ मानकों मिलता है और इसलिए मेरे समारोह के रूप में हमेशा की तरह जारी रहेगा उन्हें $ this-> डेटा में डालने के लिए किया था:

foreach($this->params['named'] as $k=>$v) 
{ 
    /* 
    * set data as is normally expected 
    */ 
    $this->data['Transaction'][$k] = $v; 
} 

और बस हो गया। पेजिंग मेरी कस्टम क्वेरी के साथ काम करता है। :)

0

यहाँ विकल्प एक अच्छा नेतृत्व कर रहे हैं ... तुम भी cakephp.org/view/166/Pagination-in-Views

पर cakePHP पृष्ठांकन बारे में अधिक जानकारी के लिए जाँच कर सकते हैं
-1
कि परम 'url' के साथ

आप केवल यूआरएल में स्ट्रिंग पृष्ठांकन पहले आपको अपने पसंदीदा स्ट्रिंग डाल सकते हैं ..

अगर मैं इस tecnique का उपयोग करें:

$urlpagin = '?my_get1=1&my_get2=2'; 
$paginator->options = array('url'=>$urlpagin); 

मैं केवल प्राप्त:

url/controller/action/?my_get1=1&my_get2=2/sort:.../... 

और केक ने मुझे प्राप्त पैराम

क्या आपके पास वैकल्पिक तकनीक है?

+1

कृपया एक प्रश्न के रूप में एक प्रश्न पोस्ट न करें .. –

+0

$ _GET [] के रूप में पैरामीटर पास न करें ... आपका यूआरएल कुछ ऐसा होना चाहिए ... यूआरएल/नियंत्रक/क्रिया/पैरा 1: val1/par2: val2 – Yashvit

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