Laravel 8 — обработка ошибок при запросе формы ВВОДА

#php #laravel

#php #laravel

Вопрос:

Я хочу обрабатывать ошибки запроса ввода, как я делаю при запросе POST.

Возможно ли это?

Потому что мое фактическое решение, похоже, не работает.

Моя обработка ошибок выглядит следующим образом

 @error('name')
    <span class="invalid-feedback is-invalid" role="alert">
        <strong>{{ $message }}</strong>
    </span>
@enderror
  

Мой код формы

 <form class="theme-form" method="POST" action="{{ route('user-profile-information.update') }}">
    @csrf
    {{ method_field('PUT') }}

    <div class="form-group row">
        <label class="col-sm-3 col-form-label" for="name">Name</label>

        <div class="col-sm-9">
            <input type="text" class="form-control" id="name" name="name" value="{{ Auth::user()->name }}" />
        </div>

        @error('name')
            <span class="invalid-feedback is-invalid" role="alert">
                <strong>{{ $message }}</strong>
            </span>
        @enderror
    </div>

    <div class="form-group row">
        <label class="col-sm-3 col-form-label" for="email">Email Address</label>

        <div class="col-sm-9">
            <input type="email" class="form-control" id="email" name="email" value="{{ Auth::user()->email }}" />
        </div>

        @error('email')
            <span class="invalid-feedback is-invalid" role="alert">
                <strong>{{ $message }}</strong>
            </span>
        @enderror
    </div>

    <input type="submit" class="btn btn-primary f-right" value="Save" />
</form>
  

Комментарии:

1. Вам нужно написать средство проверки либо в контроллере, либо в файле запросов

Ответ №1:

вам нужно использовать validate в вашем контроллере, например:

  public function update(Request $request, User $user,$id)
    {

        $request->validate([
            'name' => 'required|max:65|min:4',
            'email' => 'required|email',
        ]);

        $date = $request->except(['_token','_method']);

        $user->where('id', $id)->update($date);

        return redirect()->route('home');

    }
  

Комментарии:

1. Проблема в том, что это для обновления профиля Fortify, и я не могу получить доступ к контроллеру. Но в /app/Actions/fortify/UpdateUserProfileInformation.php в методе обновления у меня есть валидатор