2016-10-21 4 views
0

Вот самая последняя проблема, с которой я столкнулся. Я пытаюсь реализовать поиск в своем приложении, и я знаю, как это сделать, когда дело доходит до поиска ваших таблиц по ключевым словам с where('firstname', 'LIKE', %$search%) и т. Д. Однако, как бы я хотел сузить поиск, исходя из критериев, которые задает пользователь. Для быстрого поиска ключевого слова $, а также $ city и $ pricePoint.laravel 5.2 поисковый запрос

Я просто пытаюсь выяснить, как структурировать запрос в php, чтобы, если пользователь задает ключевое слово $ и город, который он ищет, и если пользователь указывает только ключевое слово $, то аспект города запроса нет.

Проект построен на базе Laravel 5.2 и в базе данных mysql. Любая помощь приветствуется.

ответ

3

Предположим, что существует 3 критерия: ключевое слово $, $ city и $ pricePoint. Вы можете сделать:

$query = DB::table('users'); 
if (!empty($keyword)) { 
    $query = $query->where('keyword', 'LIKE', '%'.$keyword.'%'); 
} 
if (!empty($city)) { 
    $query = $query->where('city', 'LIKE', '%'.$city.'%'); 
} 
if (!empty($pricePoint)) { 
    $query = $query->where('pricePoint', 'LIKE', '%'.$pricePoint.'%'); 
} 
$results = $query->get(); 

Тогда вы, конечно, можете сделать что-то более общий характер, делая перечень критериев и итерацию через них с петлей вместо добавления другого, если условия.

+0

Работал как очарование! Вы спасли мне еще много часов разочарования. – max234435

+0

Я не хочу, чтобы я просил слишком много, но знаете ли вы, как не включать пустые поля ввода в URL-адрес, когда вы отправляете метод get в форме для поиска? – max234435

+1

Вам необходимо использовать JavaScript. Вы можете увидеть сообщение, которое дает возможный способ сделать это: http://www.billerickson.net/code/hide-empty-fields-get-form/ – Arkandias

Смежные вопросы