我正在使用CakePHP2.4和搜索插件https://github.com/CakeDC/search
我有以下
Employee hasOne EmployeeProfile
Employee hasMany Qualification
所以我有一个搜索栏。
搜索栏将使用LIKE通过以下字段进行搜索
Employee.name
EmployeeProfile.email
Qualification.title
如何为此搜索配置模型Employee->filterArgs
?
这是原始问题here
的交叉发布答案 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