[Laravel] 같은 표의 관계
같은 테이블의 관계식
예) 트위터 프로그램으로 사용자 간의 추적 관계를 표현하고자 할 때
세 사용자(필, 케이, 라미)의 추적 관계는 다음과 같다.
사용자 테이블
id
name
일
채우다
이
카이
삼
라미
관련이 있는 것은 사용자 피차, 즉 같은 표의 데이터 피차이다.
물론 사용자는 여러 사용자를 추적하기 위해 다대다의 관계가 된다.
→ 중간표로followers표에서 사용자 간의 관계를 정리한다.
팔로워 테이블
following_id (측면 따르기)
followed_id (추적된 측)
일
이
일
삼
이
일
삼
이
following_id의 한쪽을 따르는 ID, followed_id가 추적된 측의 ID일 때 이렇게 관계성을 나타낼 수 있습니다.
관계 방법
User.php
public function followers()
{
return $this->belongsToMany(self::class, "followers", "followed_id", "following_id");
}
public function follows()
{
return $this->belongsToMany(self::class, "followers", "following_id", "followed_id");
}
첫 번째 인수로 참조하는 테이블을 지정하지만 이번에는 같은 테이블이기 때문에 자신의 테이블이 됩니다.두 번째 파라미터는 중간 테이블로 하는followers 테이블을 지정합니다.followers()는 따르는 사용자 ID에서 따르는 사용자 ID에 액세스합니다.
follows () 는 역방향 접근입니다.
Reference
이 문제에 관하여([Laravel] 같은 표의 관계), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/rope19181/items/62dc7fe81726c24af1e7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)