2016-10-21 7 views
0

다음은 내가 만난 가장 최근의 문제입니다. 내 응용 프로그램에 검색을 구현하는 중이고 where('firstname', 'LIKE', %$search%) 등으로 키워드 표를 검색 할 때이를 수행하는 방법을 알고 있습니다. 그러나 사용자가 지정하는 기준에 따라 검색 범위를 좁히는 방법은 무엇입니까? 예를 들어 $ 키워드뿐만 아니라 $ city 및 $ pricePoint도 검색 할 수 있습니다.laravel 5.2 검색어 검색

PHP로 쿼리를 구성하는 방법을 알아 내려고합니다. 사용자가 $ 키워드와 도시를 지정하면 쿼리에서이를 검색하고 사용자가 $ 키워드 만 지정하면 쿼리의 도시 측면 존재하지 않습니다.

프로젝트는 Laravel 5.2 및 mysql 데이터베이스를 기반으로합니다. 어떤 도움을 주셔서 감사합니다.

답변

3

$ keyword, $ city 및 $ pricePoint의 3 가지 기준이 있다고 가정합니다. 당신은 할 수 있습니다 :

$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에 빈 입력 필드를 포함하지 않는 방법을 알고 있습니까? – max234435

+1

자바 스크립트를 사용해야합니다. http://www.billerickson.net/code/hide-empty-fields-get-form/ – Arkandias