CakePHP搜索实体,其中association&field; s字段等于string

时间:2016-12-02 11:01:59

标签: php cakephp cakephp-3.0

好的......这有点难以解释。我想在我的表中搜索Projects其中

['Projects.name LIKE' => "%$searchQuery%"]

这很好用。但问题是ProjectsCustomers有一个belongsTo关联,我想查看搜索查询是否也适合CustomersCustomers.firstName和{{1}这两个字段}}。如果是这样,它必须将项目包括在列表中。

总结一下。

我想搜索项目列表(此列表包括项目名称,客户名和姓)。搜索查询应搜索项目并查看名称是否匹配。我还希望它检查搜索查询是否与客户名和姓相匹配,如果匹配,则应该包括属于该客户的项目。

希望你能理解我的问题。

这是我现在的代码(ProjectsController):

Customers.lastName

1 个答案:

答案 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']);