Laravel (5.4)의 피벗 (중간) 테이블에서 열을 어떻게 만 만들고 필터 결과를 필터링합니까?Laravel (5.4)에서 중간 (피벗) 테이블 열을 필터링/선택하는 방법
Films와 CastAndCrew의 두 가지 모델이 있습니다. CastAndCrew는 영화에서 일하는 다양한 감독, 제작자, 배우입니다. 피벗 테이블은 CastAndCrew 멤버와 필름 사이의 관계 유형을 정의해야합니다. 분명히 누군가가 예를 들어 한 영화의 배우와 다른 영화의 제작자로 구성되어 있으므로 CastAndCrew 테이블의 항목에이 정의를 정의 할 수 없습니다. 이는 한 영화에서만 적용되며 다른 영화에서는 다를 수 있습니다. 그래서 필자는 피벗 테이블에서 관계를 정의해야한다고 가정합니다. 그러나 이것을 정확하게 수행하는 방법을 모르겠습니다. 내가 지금까지있어 :
class Film extends Model
{
protected $fillable = array('filmtitle', 'description');
public function List_Directors()
{
return $this->belongsToMany('App\CastAndCrew')->withPivot('type')->wherePivot('type', 'director');
}
public function List_Actors()
{
return $this->belongsToMany('App\CastAndCrew')->withPivot('type')->wherePivot('type', 'actor');
}
}
새로운 CastAndCrew 회원 사이트에 추가됩니다
class CastAndCrew extends Model
{
protected $fillable = array('firstname', 'lastname');
public function List_Films_With_Director()
{
return $this->belongsToMany('App\Film')->withPivot('type')->wherePivot('type', 'director');
}
public function List_Films_With_Actor()
{
return $this->belongsToMany('App\Film')->withPivot('type')->wherePivot('type', 'actor');
}
}
을, 나는, 예를 첨부 방법을 사용하려는거야 새 감독을 추가하는 방법 :
$newcastcrew->CastAndCrew::create(['firstname' => Request::get('firstname'), 'lastname' => Request::get('lastname')]);
$newcastcrew->List_Films_With_Director()->attach($filmID, ['type' => 'director']);
1) 맞습니까?
2.) ->withPivot('type')
이 피벗 테이블에 '유형'열을 생성합니까? 그렇지 않다면 어떻게 정의해야합니까?
2.) 아마도 절에 Film->List_Directors()
의 조항이 해당 영화의 감독 인 CastAndCrew 멤버를 반환합니까? (내가 원하는 것)
고침이 많이 감사합니다!
감사합니다.
모든 것이 괜찮습니다. 아무런 문제가 없습니다. –