Перенаправление с сообщением сеанса, когда $ request-> validate () возвращается с ошибками - PullRequest
0 голосов
/ 24 апреля 2019

Я проверяю форму с помощью метода validate() в $request в контроллере. Это работает, но помимо сообщений об ошибках, доступных в переменной $errors, я хотел бы поместить сообщение сеанса в компонент оповещения, что мы обычно делаем, используя метод with() при возврате представления в конце Контроллер метод. Однако, когда метод validate() возвращает мне ошибки, я не нашел способа поместить в него сообщение сеанса.

Код такой:

$request->validate([
  'name' => 'required',
  'cpf' => 'cpf|required',
  'email' => 'email|required',
  'data_de_nascimento' => 'date',
  'data_de_pagamento' => 'date',
  'modalidade' => 'required',
  'instrutor' => 'required',
  'avaliacao' => 'file|required',
);

И я бы хотел, чтобы метод validate() вернул мне сессию со следующими параметрами:

'message' => [
  'content' => 'Check the mistaken information!',
  'type' => 'danger',
]

Возможно ли это? Или я должен использовать класс Validator?

Ответы [ 3 ]

0 голосов
/ 24 апреля 2019

Попробуйте это в своем блейд-файле

@if ($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif
0 голосов
/ 24 апреля 2019

Чтобы использовать $request->validate() и иметь настраиваемое сообщение об ошибке, можно передать массив сообщений функции следующим образом:

$messages = [
    'name.required' => 'Please make sure your name is entered'
];

$request->validate([
    'name' => 'required'
], $messages);

, и вы можете отобразить сообщение об ошибке встроенным вваша форма выглядит так:

<div class="col-md-12">
    <label for="name">{{ __('Name') }}</label>
    <input id="name" type="text" class="form-control{{ $errors->has('name') ? ' is-invalid' : '' }}" name="name" value="{{ old('name') }}">
    @if ($errors->has('name'))
        <span class="invalid-feedback" role="alert">
            <strong>{{ $errors->first('name') }}</strong>
        </span>
    @endif
</div>

или вы можете сделать то, что другие ответы предлагают, чтобы она появилась в виде блока предупреждения

0 голосов
/ 24 апреля 2019

Проверка вручную с использованием класса Validator является одним из способов.Кроме того, вы можете проверить, как

@if ($errors->any())
  <div class="alert alert-danger">Check the mistaken information!</div>
@endif
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...