我无法使用cakePHP 3 ORM构建查询,该帖子会选择'Posts.source' = 'app'
或'Posts.source' = 'twitter'
所有帖子的所有帖子,但当来源为'twitter'
时,结果应该是$hashtags
与$hashtags
匹配;
我只能将其与所有结果匹配到$postsTable = TableRegistry::get('Posts')
->find()
->where([
'Posts.deleted' => 0,
'Posts.source' => 'app'
])
->orWhere([
'Posts.deleted' => 0,
'Posts.source' => 'twitter'
])
->matching('PostHashtags', function ($q) use ($hashtags) {
return $q->where([
'PostHashtags.hashtag_id IN' => $hashtags
]);
})
->all();
。
这就是我到目前为止所做的:
'app'
现在,查询会从源'twitter'
中选择所有未删除的帖子以及源$hashtags
中所有未删除的帖子,并将所有结果与"orWhere"
匹配。
但我只需要将$hashtags
结果与'app'
匹配,因为源orWhere()
的结果根本没有任何主题标签,无论是什么都应该包含它们
不幸的是我在一个查询中需要这个,因为我稍后会将它与限制和偏移结合起来。
有没有办法告诉查询它应该只匹配CommandType = Data.CommandType.StoredProcedure
条件中给出的数据?