0
Activity 모델과 Level 모델이 있습니다. 각 활동은 하나의 레벨을 가지고, 그래서 활동에 다음과 같은 한 :has() 메서드 사용 Laravel BelongsTo 관계
function level()
{
return $this->belongsTo('Level');
}
을 그리고이 수준에 :
function activities()
{
return $this->hasMany('Activity');
}
그때 특정 레벨을 가지고 활동을 검색 할 필요가
, 그래서 이 일을하고있다 :
$searchData = 'beginner';
$query = $query->has(array('level' => function($query) use ($searchData)
{
$query->where('name', 'LIKE', '%' . $searchData . '%');
}));
을 이것은 LogicException 발생합니다 사용 :
,369을Has method invalid on "belongsTo" relations.
그래서 관계가 잘못되었거나 다른 방식으로 쿼리를 작성해야합니다.
제안 사항?
'Level :: with ('activities ') -> ('name ', $ searchdata) -> get();' –
@TryingTobemyself는 작동하지만 레벨 모델에서 검색하고 있습니다. . 다른 관계 (예 : 위치, 유형 등)가있는 활동을 검색 할 때 검색 쿼리를 활동 모델의 일부로 유지하는 것이 좋습니다. 가능하다면. –
@RussBack 다음에 할 수있는 것은 'Level :: with (array ('activities', 'location', 'type')) -> 여기서 'name', function ($ query) use ($ searchData) { –