문제

나는 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 절.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top