猿问

$ request-> validate()返回错误时,通过会话消息重定向

我正在通过使用控制器中的validate()方法来验证表单$request。它可以工作,但是除了错误消息(在$errors变量中可用)之外,我还希望将Session消息放置在警报组件上,这通常是我们with()在controller方法末尾返回视图时通过使用该方法来执行的操作。但是,当该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类?


ABOUTYOU
浏览 264回答 3
3回答

慕仙森

为了使用$request->validate()并显示自定义错误消息,可以将消息数组传递给函数,如下所示:$messages = [&nbsp; &nbsp; 'name.required' => 'Please make sure your name is entered'];$request->validate([&nbsp; &nbsp; 'name' => 'required'], $messages);并且您可以在表单中内联显示错误消息,如下所示:<div class="col-md-12">&nbsp; &nbsp; <label for="name">{{ __('Name') }}</label>&nbsp; &nbsp; <input id="name" type="text" class="form-control{{ $errors->has('name') ? ' is-invalid' : '' }}" name="name" value="{{ old('name') }}">&nbsp; &nbsp; @if ($errors->has('name'))&nbsp; &nbsp; &nbsp; &nbsp; <span class="invalid-feedback" role="alert">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <strong>{{ $errors->first('name') }}</strong>&nbsp; &nbsp; &nbsp; &nbsp; </span>&nbsp; &nbsp; @endif</div>或者您可以按照其他答案的建议将其显示为警报块

慕妹3242003

使用Validator类手动验证是一种方法。另外,您可以检查像@if ($errors->any())&nbsp; <div class="alert alert-danger">Check the mistaken information!</div>@endif

萧十郎

在刀片文件中尝试一下@if ($errors->any())&nbsp; &nbsp; <div class="alert alert-danger">&nbsp; &nbsp; &nbsp; &nbsp; <ul>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @foreach ($errors->all() as $error)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <li>{{ $error }}</li>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @endforeach&nbsp; &nbsp; &nbsp; &nbsp; </ul>&nbsp; &nbsp; </div>@endif
随时随地看视频慕课网APP
我要回答