2
我正在使用cakePHP,我試圖讓paginator組件通過get變量或者passargs,當你點擊到不同的頁面時。我有各種不同的搜索輸入選擇器,可以「過濾」返回的結果。這適用於第一視圖,但當我點擊不同的頁面時,它會顯示所有結果。cakePHP paginator not passing passedargs
我有我的分頁程序如下設置:
// In my controller class:
public $paginate = array('maxLimit' => 10, 'paramType' => 'querystring');
// Within my action method:
$this->paginate = array('conditions' => array(...),
order => array('Model.field ASC'),
'limit' => 20
);
// Calling the paginator:
$results = $this->paginate('Model');
$this->set(compact('results'));
在我看來文件:
<div class="paging">
<?php
echo $this->Paginator->prev('< ' . __('previous'), array(), null, array('class' => 'prev disabled'));
echo $this->Paginator->numbers(array('separator' => ''));
echo $this->Paginator->next(__('next') . ' >', array(), null, array('class' => 'next disabled'));
?>
</div>
編輯: 從我的理解,最好使用passedArgs,但我有點不確定如何做到這一點。我的$ this-> passedArgs不會返回結果,所以我在我的控制器示例中創建了傳遞的參數。我也改變了我的形式從獲取到後:
$this->passedArgs["searchfield"] = $_POST["value"];
現在正確地傳遞passedArgs在分頁條,但我不能確定如何現在建立尋呼條件陣列。在大多數情況下,用戶不會選擇默認值的例子,其中一個過濾器是從日期到日期,然後是一個搜索輸入框,如果我離開日期,它仍然會創建argumens並且不會返回任何結果,所以本質上我的url會是這樣的:
http://localhost/site/controller/action/page:3/datefrom:0/dateto:0/searchFor:survey
任何援助?
嗨@ Nebel54,謝謝你的建議。我想我找到了問題,那就是我的過濾器表單或搜索表單僅將值發佈到GET,因此我的$ this-> passedArgs爲空。你能否指出我是如何構建passedArgs的? – mauzilla
你可以發佈你的get參數的樣子嗎?是/ param1:true/param2:name or like /?param1 = true&param2 = name – Nebel54
它是/ param1:value/param2:值,但現在因爲並非所有參數都會有值,所以它會執行param1:0/param2:possiblevalue/which will break the query – mauzilla