我有一个搜索表单,我正在使用GET方法提交它.提交表单后,我需要使用提交的值预先填写表单.如果它是POST,蛋糕将自动处理这个,但它不适用于GET.我使用cakephp的表单助手创建了表单和表单控件.有没有简单的方法来预填字段而不是手动设置每个字段?我正在使用cakephp2.x
我知道这个问题刚才被问到,但我最近遇到了同样的问题.
当您使用GET时,CakeRequest不会填写该CakeRequest::data属性.Form Helper通常使用此属性来填充输入的值.因此,您必须首先使用控制器中某处的GET数据填充此属性.例如:
$this->request->data = $this->request->query;
Run Code Online (Sandbox Code Playgroud)
您的下一个问题是,如果您使用GET,表单助手会忽略您为表单设置的模型.不幸的是,这种行为没有记录,但确实提到了这一点:
您也可以通过
false为$model.这会将表单数据放入数组中:($this->request->data而不是在子数组中:)$this->request->data['Model'].这对于可能不代表数据库中任何内容的简短表单非常方便.
因此,您需要false在创建搜索表单时将模型设置为.例如:
echo $this->Form->create(false, array('type' => 'get'));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3351 次 |
| 最近记录: |