Поиск пользователей Laravel - PullRequest
2 голосов
/ 26 сентября 2019

Я хочу выполнить поиск и редактирование пользователя после завершения поиска, но мой «поиск» возвращает меня «SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1064 ....» Я новичок в темечто бы это могло быть?

мой html:

<div class="col-md-4">
<form action="/search" method="get">
<div class="form-group">
<input type="search" name="search" class="form-control">
<span class="form-group-btn">
<button type="submit" class="btn btn-primary">Pesquisar</button>
</span>
</div>
</form>
</div>

мой контроллер:

public function search(Request $request)
{
    $search = $request->get('search');
    $users = DB::table('users')->where('name', 'username', 'id', 'email', '%'.$search.'%')->paginate(5);
     return view('role-register', ['users' => $users]);
}

Мои маршруты:

Route::get('/search', 'Admin\AdmDashboardController@search');

1 Ответ

5 голосов
/ 26 сентября 2019
->where('name', 'username', 'id', 'email', '%'.$search.'%')

Это недопустимый синтаксис.->where() принимает column, operator и value и необязательный 4-й параметр для определения, следует ли использовать AND или OR логика

->where("column", "operator", "value", "AND/OR");

Если вы хотитевыполнить поиск по нескольким столбцам, создать вложенное предложение ->where():

$users = User::where(function($subQuery) use($search){
  $subQuery->where("name", "LIKE", '%'.$search.'%')
  ->orWhere("username", "LIKE", '%'.$search.'%')
  ->orWhere("id", "LIKE", '%'.$search.'%')
  ->orWhere("email", "LIKE", '%'.$search.'%');
})->paginate(5);

Примечание. Можно использовать DB::table("users") или модель User.

- из комментариев -

Если получено сообщение об ошибке view role-register does not exist, убедитесь, что у вас есть правильное имя представления, , включая подпапки :

- resources
 - views
  - admin
   - role-register.blade.php

Это должно быть указано как:

return view('admin.role-register', ['users' => $users]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...