我尝试对查询进行菊花链matching()
调用,或找到实现相同结果的等效方法。具体来说,这就是我和我#39; d喜欢这样做:
$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()
调用,因此第一个matching()
调用对查询没有影响。
我们知道您无法链接contain()
和matching()
(https://github.com/cakephp/cakephp/issues/5109),但是有没有办法用{{1}}来实现,或者是获取方式同样的结果?
感谢帮助。