CakePHP 3.0如何包含左外连接

时间:2015-04-22 18:58:30

标签: cakephp-3.0

假设Candidates有一个名为Ratings的字段。 该关联是可选的。

我希望所有Candidates的评分都不是0,或者根本没有评分 并在结果中包含评级。

我设法通过编码左外连接来获得第一部分的正确查询:

$this->Candidates
  ->find('all')
  ->leftJoin(
    ['Ratings' => 'ratings'],
    [
      'Ratings.candidate_id = Candidates.id',
      'Ratings.rating = 0',
    ],
    ['Ratings.rating' => 'integer'])
  ->where('Ratings.id IS NULL');

但是我未能在结果中获得包含的评级。怎么办?

1 个答案:

答案 0 :(得分:0)

您是否在查询中添加了contain()

$this->Candidates
  ->find('all')
  ->contain('Ratings')
  ->leftJoin(
    ['Ratings' => 'ratings'],
    [
      'Ratings.candidate_id = Candidates.id',
      'Ratings.rating = 0',
    ],
    ['Ratings.rating' => 'integer'])
  ->where('Ratings.id IS NULL');