Yii - 查找相关记录为零的记录

Yii - find records with zero related records

有两个型号:AuteursBooksAuteurs 模型包含以下关系:

public function relations() {
    return array(
        'books' => array(self::MANY_MANY, 'Books','a_liens(id_auteur,id_book)'),
        'booksCount' => array(self::STAT, 'Books', 'a_liens(id_auteur,id_book)'),
    );
}

如何编写条件使所有 Auteurs 为零 booksCount

您可能只找到 Auteurs 个没有任何书籍的模型,而不是计算书籍 - 结果是一样的,但问题是不同的。您可以通过使用 LEFT JOIN 并查找缺少书籍的记录来实现此目的:

$auteurs->with([
    'books' => [
        'together' => true,
        'select' => false,
        'joinType' => 'LEFT JOIN',
        'condition' => 'books.id IS NULL',
    ],
]);