0
메인 테이블 'QSOS'와 관계의 무리가있는 프로젝트가 있습니다. 이제 고급 검색을 만들려고 할 때 동시에 모든 관계를 쿼리하는 방법을 알지 못합니다. 교신 모델은 다음과 같은있다 :Laravel 4 묵시적 관계 쿼리
다음public function band()
{
return $this->belongsTo('Band');
}
public function mode()
{
return $this->belongsTo('Mode');
}
public function prefixes()
{
return $this->belongsToMany('Prefix');
}
public function user()
{
return $this->belongsTo('User');
}
public function customization() {
return $this->hasOne('Customization');
}
나는 모든 교신 다음과 같은 요구 조건의 컬렉션을 반환하는 코드를 다음과 같이 SearchController 있습니다
$qsos = Qso::withUser($currentUser->id)
->join('prefix_qso','qsos.id','=','prefix_qso.qso_id')
->join('prefixes','prefixes.id','=','prefix_qso.prefix_id')
->where('prefixes.territory','like',$qTerritory)
->withBand($qBand)
->withMode($qMode)
->where('call','like','%'.$input['qCall'].'%')
->orderBy('qsos.id','DESC')
->paginate('20');
을 다음보기에서 나는 $ qso-를 호출 할 필요> prefixes-> first()와 $ qso-> prefixes-> last() (Qso와 Prefix는 manyToMany 관계를 가짐) 모두 null을 리턴한다. 뭐가 잘못 되었 니? 난 도망 ('접두사')에 걸릴 경우
$qsos = Qso::withUser($currentUser->id)
->with('prefixes')
->withBand($qBand)
->withMode($qMode)
->where('call','like','%'.$input['qCall'].'%')
->whereHas('prefixes', function($q) use ($qTerritory) {
$q->where('territory','like',$qTerritory);
})
->orderBy('qsos.id','DESC')
->paginate('20');
속도가 허용된다 : 여기 – brack11