我试图在CakePHP应用程序中构建一个基本的搜索功能。只有两个字段需要搜索。我的控制器中有代码从表单中获取两个搜索值:
$options = array('Model.id' => $this->request->data['Model']['id'],
'Model.field2' => $this->request->data['Model']['field2']);
$this->set('views', $this->Paginator->paginate('Model', $options));
这两个输入都来自下拉列表,两者都是必需的。现在,当我运行搜索时,它只返回一个结果,即field2下拉列表中的第一个可选选项,如下所示:
ID Field2
1 Value1
OR
ID Field2
2 Value1
如果我在field2中搜索任何其他值,我得不到任何结果。如果我注释掉field2的下拉列表并只搜索ID,我会获得具有该ID的所有行(大约500,这是预期的)。当我在第二个下拉列表中搜索ID和Value1以外的任何值时,为什么我的结果设置为空?
答案 0 :(得分:1)
作为[{1}}参数传递的$options
数组可以包含多个键,类似于paginate
使用的键
首先构建Model->find()
数组
$conditions
然后是$conditions = array('Model.id' => $this->request->data['Model']['id'],
'Model.field2' => $this->request->data['Model']['field2']);
$options
然后将其传递给$options['conditions'] = $conditions
paginate
<小时/> 更新:
$this->set('views', $this->Paginator->paginate('Model', $options));