0

我正在使用 CakePHP2.4 和搜索插件https://github.com/CakeDC/search

我有以下

Employee hasOne EmployeeProfile 
Employee hasMany Qualification

所以我有一个搜索栏。

搜索栏将使用 LIKE 通过以下字段进行搜索

Employee.name
EmployeeProfile.email
Qualification.title

如何配置Employee->filterArgs此搜索的模型?

这是原始问题的交叉发布here

4

2 回答 2

0

该文档包含一个示例。

'username' => array('type' => 'like', 'field' => array('User.username', 'UserInfo.first_name')),

您只需确保您调用的模型在您的 find() 调用中可用。在示例中,find 将同时对 users 表 username 和 user_infos first_name 字段执行类似操作。

于 2013-08-11T23:39:24.810 回答
0

我想对此进行扩展,因为我已经尝试在 hasMany 关系上设置搜索几个小时但找不到任何东西。Mark 提到了“为 hasMany 关系(Qualification)自定义 bindModel(as hasOne)”。这是它的完成方式:

    $this->Employee->bindModel(array(
        'hasOne' => array(
            'Qualification' => array(
                'foreignKey' => false,
                'conditions' => array('Employee.id = Qualification.employee_id')
            )
        )
    ), false);

只需在分页之前绑定它,然后在 filterArgs 的字段列表中添加 Qualification.title

于 2015-05-19T19:50:17.403 回答