У меня есть две модели, называемые Page
и User
и я создал Красноречивый соотношение следующим образом:Eloquent сфера запроса на отношения
public function user() {
return $this->belongsTo('User')
}
dd(Page::with('user')->get())
Когда я могу получить правильный результат. Но теперь я хочу иметь фильтр поиска по этому результату.
Я использовал scopeSearch
, но я не уверен, как искать на результирующем наборе.
На данный момент у меня есть рамки, как это:
public function scopeSearch($query, $search) {
$query->where('username', 'LIKE', '%'.$search.'%')
->orWhere('name', 'LIKE', '%'.$search.'%')
}
Так что, когда я Page::with('user')->search('Test')->get()
он не работает. Проблема (вероятно) заключается в том, что столбец username
является частью таблицы User
, а name
является частью таблицы Page
.
Как я могу использовать область видимости или что-то знакомое, чтобы искать на наборе результатов, не повторяя ее в большинстве запросов?
Изменить эти одиночные кавычки '% $%' поиска в двойных кавычках .. –
К сожалению я обновил его, забыли @JonathanCrowe. Однако это не проблема. – guidsen