Переменная Laravel теряет область видимости в запросе - PullRequest
0 голосов
/ 22 апреля 2019

Я пытаюсь выполнить запрос в базе данных, но переменная laravel теряет свою область видимости, и запрос не выдает никаких результатов. Я пытался использовать whereRaw, но он не работал

 public function search_user(Request $r)
{
  try
  {


      if(JWTAuth::User()->role != 'Admin')
          return response()->json(['status'=>False,'error'=>'You do not have permission to Create User.Please Contact your admin for access.']);


      $search_type = $r->search_type;//Possible Values , email , userid , username , phone, role
      $search_text = strtolower($r->search_text);


      $limit = $r->limit;
      $offset = $r->offset;
      $role = JWTAuth::User()->role;

      $user = User::where($search_type,'Like','%'.$search_text.'%')->skip($offset)->take($limit)->toSql();
      $count_of_search = count($user);


      if($role == 'Admin')
          return response()->json(['status'=>true,'data'=>$user,'view_user'=>True,'add_user'=>True , 'edit_user'=>True,'delete_user'=>True,'total_users'=>$count_of_search],200);
      elseif($role == 'User')
          return response()->json(['status'=>true,'data'=>$user,'view_user'=>False,'add_user'=>False , 'edit_user'=>False,'delete_user'=>False,'total_users'=>$count_of_search],200);
      elseif($role == 'Developer')
          return response()->json(['status'=>true,'data'=>$user,'view_user'=>True,'add_user'=>False , 'edit_user'=>False,'delete_user'=>False,'total_users'=>$count_of_search],200);
  }


**Query Output**

"select * from `users` where `username` Like ? limit 5 offset 0"

1 Ответ

0 голосов
/ 22 апреля 2019

Попробуйте заменить следующую строку:

$user = User::where($search_type,'Like','%'.$search_text.'%')->skip($offset)->take($limit)->toSql();

На строку ниже:

$user = User::where($search_type,'Like','%'.$search_text.'%')->skip($offset)->take($limit)->get();

Потому что: *Метод 1012 *

toSql() возвращает запрос sql, но метод get() фактически выполняет запрос.Кроме того, если вы хотите посчитать количество пользователей, вы можете использовать метод сбора count.как показано ниже:

$count_of_search = $user->count()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...