我正在尝试对查询进行菊花链matching()
调用,或者找到一种等效的方法来实现相同的结果。具体来说,这就是我想做的事情:
$matchedItemVersion = $this->ItemVersions->find()
->where(['version' => $verion])
->matching('Items', function($q) use ($ipnCore) {
return $q->where(['ipn_core' => $ipnCore]);
})
->matching('Items.ItemTypes.ItemSuperGroups', function($q) use ($itemSuperGroupName) {
return $q->where(['name' => $itemSuperGroupName]);
})
->first()
->toArray();
这将让我通过关联模型上的两个条件过滤我的 ItemVersions 结果。但是,现在,第二次matching()
调用基本上覆盖了第一次,所以第一次matching()
调用对查询没有影响。
我们知道你不能链接 amatching()
和 a contain()
( https://github.com/cakephp/cakephp/issues/5109 ),但是有没有办法用 来做到这一点matching()
,或者有办法得到相同的结果?
感谢帮助。