CakePHP 3 - 仅针对特定条件匹配结果

时间:2016-02-02 15:31:42

标签: mysql cakephp orm cakephp-3.0

我无法使用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条件中给出的数据?

0 个答案:

没有答案