Yii 2를 사용하고 있습니다.
User
DB에 테이블 이있는 모델 이 있습니다. 나는 테이블과이 테이블을 연결하려고 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,
],
]);
나는 응용 프로그램을 실행할 때 만 인쇄합니다 User
열을 S : 스크린 샷
내가 뭘 잘못 했어?
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']
등 으로 사용할 수 있습니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다