2017-12-31 68 views
0

나는 관리자 및 검색 창에 입력하는 검색어에 따라laravel 5에로드 된 데이터에 where 절을 사용하는 방법은 무엇입니까?

내가 저장 만 사용자를 표시 할 키워드 첫째

$keyword = $request->get('search'); 

다음

$users = User::with('admin')->where('role', 'super_admin') 
        ->where(function ($query) use($keyword){ 
         $query->where('id', 'LIKE', "%$keyword%") 
         ->orWhere('name', 'LIKE', "%$keyword%"); 
      })->paginate($perPage); 

이 메신저 기본 검색어 테이블에서 검색 user 테이블

하지만 나는 또한 관리자 타를 사용하여 필터링하고 싶습니다 이 때문에 라인이 오류 undefined property admin

가 발생합니다

$users = User::with('admin')->where('role', 'super_admin') 
        ->where(function ($query) use($keyword){ 
         $query->where('id', 'LIKE', "%$keyword%") 
         ->orWhere('email', 'LIKE', "%$keyword%") 
         ->orWhere('name', 'LIKE', "%$keyword%") 
         ->orWhere($this->admin->status, 'LIKE', "%$keyword%"); 
      })->paginate($perPage); 

로 BLE 열은 그래서 ->orWhere($this->admin->status, 'LIKE', "%$keyword%");

어떻게 필터링 데이터 관리자에 열을 사용할 수 있습니다

답변

0

샘플 열망로드

$users = User::with([ 
     'admin' => function($query) use($keyword) { 
      $query->where('status', 'LIKE', "%$keyword%") 
     } 
    ]) 
    ->where('role', 'super_admin') 
    ->where(function ($query) use($keyword){ 
        $query->where('id', 'LIKE', "%$keyword%") 
        ->orWhere('email', 'LIKE', "%$keyword%") 
        ->orWhere('name', 'LIKE', "%$keyword%") 
    })->paginate($perPage);