2016-05-13 5 views
1

Laravel内でMySQLクエリを作成しようとしています。LaravelでMysql AND/OR句を適用する方法

> "select * from users u where (name like 
> '%".$request->search_string."%' or email like 
> '%".$request->search_string."%') and (user_type=2)"; 

私は

public function searchUsers(Request $request){ 
     $query = DB::table('users as u'); 
     $query->where('u.user_type',2); 
     $query->where(function($query,$request){ 
      $query->orwhere('u.name','LIKE','%'.$request->search_string.'%'); 
      $query->orwhere('u.email','LIKE','%'.$request->search_string.'%'); 
     }); 
     $result['all_users'] = $query->get(); 
    return Response::json($result); 
} 

以下のコードを試してみました。しかし、私は次のようなエラーに のApp \のHttp \コントローラ\ PatientController ::のApp \のHttp \の引数2がありません

を取得していますコントローラ{closure}()

答えて

1

あなたはwここの句。アリのが私のために働いた

public function searchUsers(Request $request){ 
     $query = DB::table('users as u'); 
     $query->where('u.user_type',2); 
     $query->where(function($query)use($request){ // Here is the change 
        // ^^ Pass only one parameter to closure function and pass `$request` in `use` function 
      $query->orwhere('u.name','LIKE','%'.$request->search_string.'%'); 
      $query->orwhere('u.email','LIKE','%'.$request->search_string.'%'); 
     }); 
     $result['all_users'] = $query->get(); 
    return Response::json($result); 
} 
+0

感謝:)歓声あなたを助けるために喜ん – Drone

+0

:これを参照してください。 – Ali

関連する問題