[Laravel] 같은 표의 관계

2153 단어 PHPLaravel관계.

같은 테이블의 관계식


예) 트위터 프로그램으로 사용자 간의 추적 관계를 표현하고자 할 때
세 사용자(필, 케이, 라미)의 추적 관계는 다음과 같다.

사용자 테이블
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 () 는 역방향 접근입니다.

좋은 웹페이지 즐겨찾기