이 글에서는 3-테이블 연관을 달성하기 위한 Yii2 hasOne(), hasMany() 메소드(두 가지 메소드)를 주로 소개합니다. 매우 훌륭하고 도움이 필요한 친구들이 참고할 수 있습니다.
배경:
그룹과 사용자의 두 가지 인스턴스가 있습니다.
그룹에는 여러 사용자가 있을 수 있고 사용자는 여러 그룹에 속할 수도 있습니다(다대다 관계)
GroupUserRelation 테이블은 그룹 구성원 간의 관계를 바인딩하는 데 사용됩니다( id Binding)
필드에는 id, group_id, user_id
기존 User 테이블이 있으며, 해당 테이블이 속한 모든 사용자 그룹의 정보를 가져와야 하며 hasMany( ) 다중 테이블 연관.
User.id => GroupUserRelation.user_id GroupUserRelation.group_id => Group.id
방법 1
public function getGroup() { return $this->hasMany(Group::className(), ['id' => 'group_id']) ->viaTable(GroupUserRelation::tableName(), ['user_id' => 'id']); }
방법 2
public function getGroup() { return $this->hasMany(Group::className(), ['id' => 'group_id']) ->viaTable('groupUserRelation'); } public function getGroupUserRelation() { return $this->hasMany(GroupUserRelation::tableName(), ['user_id' => 'id']); }
위 내용은 3개의 테이블 연관을 구현하기 위한 Yii2 hasOne() 및 hasMany()의 두 가지 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!