우리는 3 개의 테이블, 게시물, 사용자 및 이미지가 있다고 가정 해 보겠습니다. 게시물이 사용자 테이블과 관련이 있고 이미지가 사용자 테이블과 관계가있어 게시물이 사용자에게 속하고 이미지가 사용자에게 속하는 경우Yii 다른 모델을 사용하여 테이블에 가입 관계
Post {
post_id
user_id
}
Users {
user_id
}
Images {
image_id
user_id
}
이제 Yii에서 관계를 모델에 정의 할 수 있습니다. 나는 '과'기능을 사용하여이 CDbCriteria를 조회 할 수있는 DBCriteria를 사용하여, YII 지금
<?php
class Users extends CModel {
public function relations() {
'images' => array(self::HAS_ONE, 'Images', 'user_id')
'posts' => array(self::HAS_MANY, 'Posts', 'user_id')
}
}
class Images extends CModel {
public function relations() {
'user' => array(self::HAS_ONE, 'Users', 'user_id')
}
}
class Posts extends CModel {
public function relations() {
'user' => array(self::HAS_ONE, 'Users', 'user_id')
}
}
: 나는과 같이 설정 한 관계를 가지고있다. 내 질문은 포스트 모델에서 쿼리하고 사용자 모델 내부의 관계를 사용하여 사용자 이미지를 얻는 방법입니다.
예 :
CActiveDataProvider('Posts', array(
'criteria'=>array(
'with' => array('users', 'Users.images'),
),
'pagination'=>array(
'pageSize'=>20,
),
));
YII이 달성의 방법이 있나요?
내가 게시 한 코드가 작동하지 않는다고 생각합니다. 'Posts'와'Images'의'user' 관계는'BELONGS_TO' 여야합니다. –
허락을 받았지만 예제를 흉내 냈습니다.하지만 아이디어는 다른 모델의 조인과 동일하게 유지됩니다. –
글쎄, 차이가 있습니다. 실제로 'HAS_ONE'이라면 [through] (http://www.yiiframework.com/doc/guide/1.1/en/database.arr#relational-query-withthroughthrough) 기능을 사용할 수 있습니다. 하지만 'BELONGS_TO'와 (과) 함께 작동하지 않습니다. –