Yii2,如何通过查询检查关系?

时间:2016-12-08 06:59:31

标签: activerecord yii2 relationship

我有两个模型,通过连接表关系。所以,我试图从db获得一些没有这种关系的模型。 我可以通过this way来做到这一点。 但是如何通过查询来做到这一点?使用with或joinWith方法,并在联结表列中检查IS NULL

1 个答案:

答案 0 :(得分:2)

创建交汇点模型并添加到您的AR模型方法中:

/**
 * @return ActiveQuery
 */
public function getJunctions()
{
   return $this->hasMany(Junction::className(), ['someId' => 'id']);
}

然后你可以将它用于查询:

$query = Model::find()
    ->joinWith([
        'junctions' => function (\yii\db\ActiveQuery $query) {
            $query->andWhere(['{{junction}}.id' => null]);
        }
    ], false);