Laravel 4 동일한 테이블에 대한 다중 hasmany
문제
나는 laravel 4 응용 프로그램을 가지고 있으며 이 응용 프로그램에서는 다른 모델과 관련하여 모델을 2번 정의해야 하지만 유형은 구별됩니다.
예
class Car extends Eloquent{
public function oldDrivers(){
return $this->hasMany('Driver');
}
public function newDrivers(){
return $this->hasMany('Driver');
}
}
그래서 관계는 car
이드의 driver
의 테이블에서 문제는 특정 자동차에 대해서만 기존 드라이버를 가져오고 싶을 때 두 관계 모두에서 모든 드라이버를 반환한다는 것입니다.
찾아보니 같은 테이블이라 이제 타입을 설정해 놓았네요. Driver
이제 내 관계가 이 유형으로 필터링되기를 원하므로 oldDrivers는 oldDrivers 유형의 드라이버만 되고 새 드라이버는 newDriver 유형이 설정된 드라이버만 됩니다.
Laravel에서는 어떻게 이 작업을 수행할 수 있나요?
해결책
다음과 같이 시도해 볼 수 있습니다.
class Car extends Eloquent{
public function oldDrivers(){
return $this->hasMany('Driver')->where('type', 'olddrivers');
}
public function newDrivers(){
return $this->hasMany('Driver')->where('type', 'newdrivers');
}
}
당신이 가지고 있다고 가정 type
필드를 데이터베이스의 필터로 사용하세요.내가 틀렸다면 type
필드를 변경하면 됩니다. field
이름을 올바른 이름으로 지정하세요. 왜냐하면 필터를 사용하여 어떻게 필터를 추가할 수 있는지 알았기 때문입니다. where
절.
제휴하지 않습니다 StackOverflow