> 백엔드 개발 > PHP 튜토리얼 > 3개의 테이블 연관을 구현하기 위한 Yii2 hasOne() 및 hasMany()의 두 가지 방법에 대한 자세한 설명

3개의 테이블 연관을 구현하기 위한 Yii2 hasOne() 및 hasMany()의 두 가지 방법에 대한 자세한 설명

黄舟
풀어 주다: 2023-03-07 07:40:01
원래의
2169명이 탐색했습니다.

이 글에서는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿