Как отобразить ошибку проверки и другие ошибки вместе в Laravel? - PullRequest
0 голосов
/ 21 декабря 2018

В моем контроллере есть куча проверок.После проверки их я проверяю, присутствует ли определенный элемент в сеансе.Если этот элемент отсутствует, то я отправляю еще одну ошибку.Я хочу показать все ошибки проверки и другие ошибки вместе.

 $this->validate($request,[
        'other11' => 'nullable|image',
        'other12' => 'nullable|image',
        'other13' => 'nullable|image',
        'other14' => 'nullable|image',
        'other15' => 'nullable|image',
    ]);

    if(session()->get('media')['other10']==NULL)
    {
        return back()->withErrors(['other10'=>'No data in session']);
    }

В настоящее время, если есть ошибка проверки, тогда ошибка, связанная с полем «Other10», не отображается в представлении.Есть ли способ вернуть и ошибку проверки, и ошибку, относящуюся к «other10», вместе?

Ответы [ 3 ]

0 голосов
/ 21 декабря 2018

Создайте экземпляр валидатора со всеми правилами валидации, затем вы можете принять его ошибки и добавить столько ошибок, сколько захотите.Это что-то вроде следующего:

$validator = Validator::make($request->all(), [
    'other11' => 'nullable|image',
    'other12' => 'nullable|image',
    'other13' => 'nullable|image',
    'other14' => 'nullable|image',
    'other15' => 'nullable|image'
]);

$errors = $validator->errors();

if (session()->get('media')['other10'] == NULL) {
    $errors->add('other10', 'No data in session');
}

return back()->withErrors($errors);
0 голосов
/ 21 декабря 2018

используйте

return redirect()->back()->with('error' ,'error message');

вместо

return back()->withErrors(['other10'=>'No data in session']);
0 голосов
/ 21 декабря 2018
$this->validate($request,[
    'other11' => 'nullable|image',
]);

Это перенаправит обратно, если какое-либо сообщение об ошибке, проверка не пройдена.После этого распечатывайте сообщения в таком виде:

@if ($errors->has('other11'))
    {{ $errors->first('email') }}
@endif

Если вы хотите распечатать все сообщения, это поможет вам:

@if($errors->has())
    @foreach ($errors->all() as $error)
        <div>{{ $error }}</div>
    @endforeach
@endif

Лучше использовать проверенный код проверки формы запроса Laravelот Laravel:

public function rules()
{
    return [
        'title' => 'required|unique:posts|max:255',
        'body' => 'required',
    ];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...