CakePHP:多个条件的过滤视图仅返回一个结果

时间:2016-02-05 18:35:03

标签: php cakephp

我试图在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以外的任何值时,为什么我的结果设置为空?

1 个答案:

答案 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));