CakePHP:使用FormHelper将搜索查询传递给控制器参数

CakePHP:使用FormHelper将搜索查询传递给控制器参数,php,html,forms,cakephp,get,Php,Html,Forms,Cakephp,Get,在CakePHP2.4中,如何将表单直接传递给控制器参数?我的控制器采用/Model/index/by:keyword格式的参数,但是FormHelper一直在URL中插入问号和等号:Model/index?by%3A=keyword 这是我一直在用的表格。是否有任何方法可以更改此默认行为 echo $this->form->create('Post', array('action' => '/index', 'type' => 'get', 'class' =>

在CakePHP2.4中,如何将表单直接传递给控制器参数?我的控制器采用
/Model/index/by:keyword
格式的参数,但是FormHelper一直在URL中插入问号和等号:
Model/index?by%3A=keyword

这是我一直在用的表格。是否有任何方法可以更改此默认行为

echo $this->form->create('Post', array('action' => '/index', 'type' => 'get', 'class' => 'navbar-form')); 
echo $this->form->input("by:", array('label' => '', 'placeholder' => 'Search', 'class' => 'form-control')); 
echo $this->form->end();

我会尝试创建如下表单:

echo $this->Form->create('Post', array('type' => 'GET', 'url' => array('controller' => 'yourpostcontroller', 'action' => 'search')));
echo $this->Form->input('search', array('class' => 'form-control'));
echo $this->Form->button('Search', array('div' => false, 'class' => 'btn'));
echo $this->Form->end();
在“搜索”操作(控制器内部)中,不要忘记读取请求:

if(!empty($this->request->query['search']) ...{
    //do something
}

希望能有所帮助。

将URL格式从
$this->passedArgs['by']
(URL格式
/by:keyword
)更改为
$this->request->query['by']
(URL格式
?by=keyword
),但效果很好!