2013-03-21 96 views
3

我想在cakephp中傳遞參數,我怎麼能這樣做,當我搜索排序的結果,然後點擊2頁的分頁,它不會記住的網址,我想通過參數,我選擇形式dromdown,我怎麼能通過在分頁的PARAMS在我的控制器代碼如何在cakephp中傳遞參數分頁?

 $membershipType = ''; 
    $status   = ''; 
    $timeSpan  = ''; 

    $fieldName = 'membership_Type'; 
    if(!empty($this->params->named["fieldName"])){ 
     $this->request->data['associations']["fieldName"] = $this->params->named["fieldName"]; 
    } 
    $fieldName = 'statuses'; 
    if(!empty($this->params->named["fieldName"])){ 
     $this->request->data['associations']["fieldName"] = $this->params->named["fieldName"]; 
    } 

    $fieldName = 'time_Span'; 
    if(!empty($this->params->named["fieldName"])){ 
     $this->request->data['associations']["fieldName"] = $this->params->named["fieldName"]; 
    }  

我想通過在分頁字段名的值,我如何能夠通過這些? 在我看來代碼

echo $this->PaginatorManager->options(); 

我真的很stucked這裏離兩天,我硝基甲苯知道西隧現在該怎麼做?請幫助我,這將得到更多的讚賞,謝謝一噸提前。

+0

你不能將其標記爲1.3和2.x版本:

Router::connect('/my_account/*', array('controller' => 'ads', 'action' => 'my_account'), array( 'pass' => array('status') )); 
在視圖文件

然後請在這裏選擇正確的CakePHP版本。 – mark 2013-03-21 13:27:03

+0

@mark我正在製作最新的蛋糕版,我也標記了其他人,因爲1.3和2.x中有很多用戶 – user2046638 2013-03-21 13:30:50

+0

這是無效的。如果你的代碼是用於2.x而不是用「cakephp」(parent)和「cakephp2.x」來標記它,否則你只會混淆每個人,而你很可能會因此而得到不正確的答案。 – mark 2013-03-21 13:35:16

回答

3

您可以通過「URL」選項,在視圖中分頁這樣的:

$url = array_merge($this->request->pass, $this->request->named); 
unset($url['page']); 
$parts = explode('?', $_SERVER['REQUEST_URI'], 2); 
if (count($parts) == 2) { 
    $url['?'] = $parts[1]; 
} 
$this->Paginator->options(array(
    'url' => $url, 
)); 

這裏更多:http://api.cakephp.org/2.2/class-PaginatorHelper.html 這裏:http://book.cakephp.org/2.0/en/core-libraries/helpers/paginator.html#PaginatorHelper::options

如果廣泛使用過濾器和附加網址參數 - 使它將爲您處理

1

元素這個工作對我來說:

我將t定義他參數app.Config.routes.php:

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