Я нашел эту функцию в Stackoverflow. Он позволяет определить ключевое слово, и функция проверяет, является ли она частью разных столбцов в моей базе данных.Laravel SearchByKeyword Область для отношений?
public function scopeSearchByKeyword($query, $keyword)
{
if ($keyword != '') {
$query->where(function ($query) use ($keyword) {
$query->where("reference", "LIKE","%$keyword%")
->orWhere("title", "LIKE", "%$keyword%")
->orWhere("description", "LIKE", "%$keyword%");
});
}
return $query;
}
Теперь, я хочу добавить ->orWhere()
, чтобы найти деревню. Однако в моей модели есть только поле под названием village_id
, которое находится в связи с моим villages
-table.
Итак, если бы я сделал ->orWhere("village_id", "LIKE", "%$keyword%");
, он будет искать в столбцах только содержащие идентификаторы. Как я могу определить область, в которой он должен искать внутри <RelationName> -> name
?
Спасибо , но я не могу использовать ключевое слово $ внутри '$ q-> где()' явно. Есть идеи? – Scarwolf
Просто используйте - 'use ($ keyword)' в закрытие, см. Обновленный ответ –
Отлично работает! Потрясающие. Спасибо. – Scarwolf