如何构建由关联数据过滤的查询以及cakephp 3.x中原始模型中的字段

时间:2015-09-18 22:08:13

标签: cakephp

我正在尝试在CakePHP 3.x中构建一个查询。我有属于作者的文章(在Articles表中有author_id键),并且通过ArticlesAuthors属于ToMany作者。我想选择属于某个author_id的所有文章以及在ArticlesAuthors关联中也属于该作者的所有文章。

irc频道中的jose_zap建议使用leftJoinWith,但我对查询不够熟悉,无法理解如何做我想要的事情。

1 个答案:

答案 0 :(得分:0)

是的,你需要leftJoinWith它会创建行的交叉连接,你可以按照以下条件过滤:

$query = $this->Articles->find('all')
  ->leftJoinWith('ArticlesAuthors')
  ->leftJoinWith('Authors')
  ->where(['Authors.id' => $authorId])
  ->orWhere(['ArticlesAuthors.author_id' => $authorId]);