CakePHP 3.X查询与查找器结果按OR组合

时间:2018-07-12 14:17:46

标签: cakephp-3.0

我有2个发现者。第一个用于获取经过验证的产品,第二个用于获取登录用户的产品。

// Returns validated products
public function findValidated(Query $query, array $options = [])
{
    return $query->where(['validated' => true]);
}

// Returns logged user products
public function findYours(Query $query, array $options = [])
{
    if (empty($options['username'])) {
        return $query;
    }

    return $query->where('created_by' => $options['username']]);
} 

但是我需要查询以获取包括所有已验证产品和已记录用户产品的产品列表。因此,我想重新利用两个查找器,但是如果我将它们包含在同一查询中,则会返回 AND 结果。我的意思是,我得到了属于登录用户的经过验证的产品。

$this->Products->find('validated')->find('yours', ['username' => $user-id]);

我可以在没有重复条件的情况下执行此操作吗?也就是说,只是打电话给发现者?

我也尝试过,但是没有工作。

// Returns validated products
public function findValidated(Query $query, array $options = [])
{
    return $query->where(['OR' => ['validated' => true]]);
}

我在两个查找器中都包含了 OR ,但结果是相同的。

0 个答案:

没有答案