0
사용자가 여행 가이드를 검색 할 수있는 사이트에 자동 완성 기능이있는 검색 표시 줄이 있습니다. 여행 가이드의 일부은 다음과 같은 이름을 가지고 있습니다. Snookie 's Outfitter 보시다시피, 이름에 아포스트로피가 있습니다. 따라서 사용자가 첫 단어를 입력하고 아포스트로피를 치면 사용자가 검색 막대에 아포스트로피를 삽입하지 않았기 때문에 검색어가 나머지를 무시합니다. 나는 데이터베이스에서 그 아포스트로피를 어떻게 무시할 수 있을지 궁금했다.데이터베이스를 쿼리 할 때 아포스트로피 무시 - Laravel 5.4
public function index()
{
$query = request()->get('query');
$results = Listing::searchAndCache($query);
return view('search.index', compact('results', 'query'));
}
나의 리스팅 모델 :
이 누군가가 검색 할 때 내 쿼리를 설정하는 방법이다 나는이 특히 PHP를 들어, 이전에 요청 된 알
public static function searchAndCache($query)
{
return self::whereHas('locations', function($m) use($query) {
$m->where('region', 'like', '%'.$query.'%');
$m->orWhere('country', 'like', '%'.$query.'%');
$m->orWhere('city', 'like', '%'.$query.'%');
$m->orWhere('county', 'like', '%'.$query.'%');
$m->orWhere('regionCode', 'like', '%'.$query.'%');
})->live()->orWhere(function($m) use($query){
$m->where('name','like','%'.$query.'%');
$m->live();
})->paginate();
}
을,하지만 난 단지 돈 Laravel 검색 쿼리에서이를 구현하는 방법을 알지 못합니다.
단지 HTML :: entities()를 사용하여 쿼리를 인코딩하면 주입에 대한 쿼리를 보호하기위한 더 안전한 방법입니다. –
SQL로하는 방법을 알고 있습니까? 나는 SQL을 Laravel 문법으로 바꾸는 것에 능숙하다. 나는 SQL에 그렇게 좋지 않다. – devk
이 링크에서 뭔가를 발견했지만 정규 PHP 구문을 사용하고 있습니다. http://stackoverflow.com/questions/4351337/ignoring-apostrophes-in-mysql-searches – David