CakePHP:多个条件的筛选视图只返回一个结果


CakePHP: Filter view on multiple criteria only returns one result

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

作为

参数传递给paginate$options数组可以包含多个键,类似于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));


更新:
$conditions = array('Model.id' => $this->request->data['Model']['id'],
        'Model.field2' => $this->request->data['Model']['field2']);
$options['conditions'] = $conditions;
$this->Paginator->settings = $options;
$data = $this->Paginator->paginate('Model');
$this->set('views', $data);