HTML5
Сначала защитите свое поле, чтобы дать пользователю немедленную обратную связь с пользователем.В бланке вашей формы:
<input type="text" name="search" value="{{ isset($search) ? $search : '' }}" pattern="[a-zA-Z]+" placeholder="search" />
Проверка
проверка строка поиска для буквенно-цифровой :
$this->validate($reqest,[
'search' => 'alpha_num',
]);
или просто alpha :
$this->validate($request,[
'search' => 'alpha',
]);
Более новые версии
Более новые версии ( 5.6 + ), запросы могут проверять себя вместо контроллера, иверните проверенные поля для большей защиты, поэтому то же самое будет выглядеть так:
$data = $request->validate([
'search'=>'alpha',
]);
Отображение ошибок валидации
Взяв приведенный выше код HTML5 и добавив код в , покажите ошибки валидации, чтобы мы могли видеть, когда происходит ошибка.Мы получаем форму, которая выглядит следующим образом:
<form method="get" action="{{route('student.index')}}">
<input type="text" name="search" value="{{ isset($search) ? $search : '' }}" pattern="[a-zA-Z]+" placeholder="search" />
@if ($errors->has('search'))
<div class="error">{{ $errors->first('search') }}</div>
@endif
<input type="submit" />
</form>
Собираем ее вместе
Применяем это к вашему коду:
public function index(Request $request)
{
$data = $request->validate([
'search' => 'alpha',
]);
$students = isset($data['search']) ? Student::where('nom','like','%' . $data['search'] . '%')->paginate(5) : Student::paginate(5);
return view('admin.students.index', compact('students','search'));
}