Я переименовал свой "id" в "teams_id"
Теперь, когда я обновляю, он показывает мне следующую ошибку
Я также пытался использовать объявление в своей модели, но это не сработало.
Вот мой код обновления:
{
$this->validate(request(), [
'coach' => 'required',
'team' => "required|unique:teams,team,$id",
'manager' => "required|unique:teams,manager,$id",
]);
$team=Team::findorfail($id);
$team->team = $request->input('team');
$team->coach = $request->input('coach');
$team->manager = $request->input('manager');
$team->save();
Toastr::success('Team info was updated','Success!');
return redirect('/teams');
}
Пожалуйста, не размещайте здесь изображения, просто код. Вы должны посмотреть, как спросить тему stackoverflow.com/help/как спросить
хорошо, я больше не буду публиковать изображения..... пожалуйста, скажите мне, как решить эту проблему, и у меня есть "teams_id"
я здесь новенькая, если что-то пойдет не так, пожалуйста, не обращайте внимания
Ошибка скорее всего в вашем валидаторе
'team' => "required|unique:teams,team,$id",
Проверьте laravel документация и попробуйте использовать
'team' => "required|unique:teams,team,$id,teams_id",
Это запустит проверку unique
для идентификатора вместо поля team
и не будет игнорировать текущую команду. Просто добавьте ,teams_id
в конце, ничего не удаляя.
ooopsss .... вы правы. эта проблема возникает для валидатора ... вы знаете, как ее решить
подожди, дай мне попробовать
Да, Томас прав, следуйте его комментарию, я также отредактировал ответ
Это не проходит проверку. Правило проверки unique
проверяет столбец id
. Он не использует первичный ключ модели. Вместо этого измените правила проверки на следующие:
$this->validate(request(), [
'coach' => 'required',
'team' => "required|unique:teams,team,$id,teams_id",
'manager' => "required|unique:teams,manager,$id",
]);
у вас есть team_id не id