2014-11-04 1 views
0

한 번에 3 개의 별도 테이블을 쿼리하고 싶습니다. 주된 것은 Criteria이고 criteria_id에 의해 연결된 두 개의 has Many 테이블은 BedroomsProperties입니다. Laravel - 관계를 기반으로하는 쿼리 3 테이블

Criteria

많은 Bedrooms 많은 Properties 수 있습니다 :

Screenshot

기준 모델을

public function bedrooms() 
{ 
    return $this->hasMany('Bedroom'); 
} 

public function properties() 
{ 
    return $this->hasMany('Property'); 
} 

나는 이것이 가능하다면 확실 해요,하지만 난 모두를 조회 할 이 테이블과 Criteria은 어느 기준에 특정 침실과 특정 속성 유형이 있는지 확인합니다. 여러 개의 침실과 각 criteria_id에 대해 저장된 속성이있을 수 있습니다.

지금까지, 내 ​​쿼리는 다음과 같습니다

$criterias = Criteria::select('id') 
     ->where('min', '<=', Input::get('single_value')) 
     ->lists('id'); 

내 유일한 논리적 인 설명입니다 -

모든 기준을 얻을 경우 최소 < = 값과 Criteria.Bedrooms = 1 Criteria.Properties = 5.

마치 루프를 통해 기준에 해당 값이 저장된 침실/속성이 있는지 확인합니다.

많은 도움에 감사드립니다. 당신이 당신의 제약 조건을 충족에만 기준을 찾는 경우

답변

1

Eager Loading을보십시오. 그런 다음 where()lists()을 추가하십시오.

Criteria.Bedrooms = 1 and Criteria.Properties = 5 다소 모호했지만 필자는이를 어디로 가야하는지 추가했습니다. 실제로 id15으로 각각 추측 했으므로 ID가 1이고 속성이 ID가 5 인 침실을 모두 가질 수 있습니다.

+0

많은 도움을 주셔서 감사합니다. – Ben

0

, 당신은 침실 및 속성 관계에 whereHas()를 사용할 수있는 관계

$criterias = Criteria::with('bedrooms', 'properties') 
      ->where('min', '<=', Input::get('single_value')) 
      ->lists('id'); 
+0

침실과 속성 테이블을 쿼리하고 싶습니다. . 예를 들어 기준에 침실이 1 개이고 속성이 5 인 경우. 이 질문에 다시 질문해야합니까? – Ben

+0

나는 user3158900의 대답이 당신이 찾고있는 것이라고 생각합니다 ... – lukasgeiter