Как произвести валидацию уникального параметра при перезаписи в Laravel
Распространенная ситуация при пректировании веб-приложений: перезаписываем существующий уникальный параметр, но который нужно валидировать на уникальность, кроме самого себя.
Нужна такая конструкция при валидации:
// сохранить в профиле email public function changemail(Request $request) { //валидация $this->validate($request, [ 'email' => 'required|email|unique:users,email,'. Auth::user()->id, ]); //после валидации, к примеру, пишем изменения $user = User::find(Auth::user()->id); $user->email = $request->get('email'); $user->save(); //ну и, к примеру, возвращаемся в профиль return redirect()->back(); } |
Строчка валидации читается так:
1) required — обязательный параметр;
2) email — тип email;
3) unique:users,email,’. Auth::user()->id
unique:users — уникальный для поля email, таблицы users, кроме id поля, задаваемого идентификатором пользователя Auth::user()->id, в нашем случае авторизованного пользователя.