好的......这有点难以解释。我想在我的表中搜索Projects
其中
['Projects.name LIKE' => "%$searchQuery%"]
这很好用。但问题是Projects
与Customers
有一个belongsTo关联,我想查看搜索查询是否也适合Customers
,Customers.firstName
和{{1}这两个字段}}。如果是这样,它必须将项目包括在列表中。
总结一下。
我想搜索项目列表(此列表包括项目名称,客户名和姓)。搜索查询应搜索项目并查看名称是否匹配。我还希望它检查搜索查询是否与客户名和姓相匹配,如果匹配,则应该包括属于该客户的项目。
希望你能理解我的问题。
这是我现在的代码(ProjectsController):
Customers.lastName
答案 0 :(得分:1)
看来你只是不知道如何做一个简单的OR
$projectsFiltered = $this->Projects->find('all')
->where([
'Projects.archived' => 0,
'OR' => [
'Projects.name LIKE' => "%$searchQuery%",
'Customers.firstName LIKE' => "%$searchQuery%",
'Customers.lastNameLIKE' => "%$searchQuery%"
]
])
->contain(['Customers', 'Customers.Projects']);