这一定是显而易见的事情,但是我已经挣扎了一个多小时。
我有devices
,laboratories
和users
个表格。每个设备都通过laboratory
绑定到lab_id
,每个实验室都通过users
绑定到user_id
。每个设备只与一个实验室绑定,每个用户都可以绑定到许多实验室。
我想显示当前用户绑定到的所有实验室中的所有设备。我想,这将简单如下:
$query = Device::find()->with('lab')->where($[
'lab.user_id' => Yii::$app->user->id
]);
但是这失败了,错误,没有lab.user_id
这样的列。我错过了什么?
答案 0 :(得分:4)
如果您想在查询中使用相关数据,则只需使用joinWith()
代替with()
:
$query = Device::find()->joinWith('lab')->where([
Laboratory::tableName() . '.user_id' => Yii::$app->user->id
]);