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

时间:2019-04-24 12:33:02

标签: php laravel

我正在使用控制器中validate()处的$request方法来验证表单。它可以工作,但是除了错误消息(位于$errors变量中)之外,我想将Session消息放置在警报组件上,这通常是通过在返回视图时使用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()方法返回给我一个带有以下参数的Session:

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

有可能吗?还是应该使用Validator类?

3 个答案:

答案 0 :(得分:0)

使用Validator类手动验证是一种方法。 另外,您可以像

@if ($errors->any())
  <div class="alert alert-danger">Check the mistaken information!</div>
@endif

答案 1 :(得分:0)

在刀片文件中尝试

@if ($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

答案 2 :(得分:0)

为了使用^([A-Za-z\\])*$ 并显示自定义错误消息,可以像这样将消息数组传递给函数:

$request->validate()

,您可以像这样在表单中内嵌显示错误消息:

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

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

或者您可以按照其他答案的建议将其显示为警报块