如何使用cakedc / search插件在1个搜索栏中搜索3个不同的表格?

时间:2013-07-28 10:12:52

标签: cakephp search cakephp-2.0 cakedc

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

我有以下

Employee hasOne EmployeeProfile 
Employee hasMany Qualification

所以我有一个搜索栏。

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

Employee.name
EmployeeProfile.email
Qualification.title

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

这是原始问题here

的交叉发布

2 个答案:

答案 0 :(得分:0)

该文档包含一个示例。

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

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

答案 1 :(得分:0)

我想扩展这一点,因为我一直试图在hasMany关系上设置搜索几个小时但无法找到任何内容。 Mark为hasMany关系(Qualification)"提到"自定义bindModel(asOne)。以下是它的完成方式:

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

只需在您的paginate之前绑定它,并在您的filterArgs字段列表中添加Qualification.title