我正在使用Yii 2.
我在DB中有表格的模型dict
。
我尝试将此表与表User
链接,该表auth_assignment
,user_id
和item_name
使用created_at
子句。我写了这个:
LEFT JOIN
然后我将$model = User::find()->leftJoin('auth_assignment AS a', '`a`.`user_id` = `user`.`id`');
附加到$model
:
ActiveDataProvider
但是当我运行应用程序时,它只会打印$dataProvider = new ActiveDataProvider([
'query' => $model,
'pagination' => [
'pageSize' => 5,
],
]);
个列:screenshot
我做错了什么?
答案 0 :(得分:0)
在User
模型中,您无法获取另一个表的属性(auth_assignment)。
你可以通过两种方式来实现。
User
auth_assignment
模型中User
和hasOne()
表格之间的关系
醇>
示例:(使用auth_assignment表的模型名称)
public function getAuth()
{
return $this->hasOne(Authassignment::className(), ['id' => 'user_id']);
}
您可以将auth_assignment
表格属性用作$model->auth->user_id
;
$model = User::find()
->select('user.*,a*')
->leftJoin('auth_assignment AS a', 'a.user_id= user.id')
->asArray();
$dataProvider = new ActiveDataProvider([
'query' => $model,
'pagination' => [
'pageSize' => 5,
],
]);
现在你可以使用属性作为数组变量,即
$model['user_id']
等。