Có nhiều dự án thực tế ở màn hình tìm kiếm sẽ có một box tìm kiếm để nhập user name và khi nhập user name thì sẽ tìm kiếm tất cả các users có trường firt name hoặc last name giống với text tìm kiếm nhập vào ô tìm kiếm.
Trong bài biết này mình sẽ chia sẻ 3 cách để tìm kiếm first name hoặc last name trong laravel version 6 trở lên nhé.
Ví dụ 1:
Hãy update code vào controller như bên dưới nhé.
app/Http/Controller/UserController
<?phpnamespaceAppHttpControllers;useIlluminateHttpRequest;useAppModelsUser;useDB;classUserControllerextendsController{/**
* Write code on Method
*
* @return response()
*/publicfunctionindex(){$search="Barack Ob";$users=User::select("id","first_name","last_name")->orWhere(DB::raw("concat(first_name, ' ', last_name)"),'LIKE',"%".$search."%")->get()->toArray();dd($users);}}
Output:
array:1[▼
0=>array:3[▼
"id"=>1"first_name"=>"Barack""last_name"=>"Obama"]]
Ví dụ 2:
app/Http/Controller/UserController
<?phpnamespaceAppHttpControllers;useIlluminateHttpRequest;useAppModelsUser;useDB;classUserControllerextendsController{/**
* Write code on Method
*
* @return response()
*/publicfunctionindex(){$search="Barack Ob";$users=User::select("id","first_name","last_name")->whereRaw("concat(first_name, ' ', last_name) like '%".$search."%' ")->get()->toArray();dd($users);}}
Output:
array:1[▼
0=>array:3[▼
"id"=>1"first_name"=>"Barack""last_name"=>"Obama"]]
Ví dụ 3:
app/Http/Controller/UserController
<?phpnamespaceAppHttpControllers;useIlluminateHttpRequest;useAppModelsUser;useDB;classUserControllerextendsController{/**
* Write code on Method
*
* @return response()
*/publicfunctionindex(){$search="Ob";$users=User::select("id","first_name","last_name")->where(function($q)use($search){$q->orWhere('first_name','like',"%{$search}%")->orWhere('last_name','like',"%{$search}%");})->get()->toArray();dd($users);}}
Output:
array:1[▼
0=>array:3[▼
"id"=>1"first_name"=>"Barack""last_name"=>"Obama"]]
Nguồn: viblo.asia