Laravel Validator-在控制器中以数组形式获取错误消息

问题描述

这是我的Laravel验证

$validation = Validator::make($request->all(),[
            'template_id' => 'required','email' => ['required','email','unique:user,email'],'first_name' => 'required','last_name' => 'required',]);

如果我打印$validation->messages(),我将跌倒

Illuminate\Support\MessageBag Object
(
    [messages:protected] => Array
        (
            [template_id] => Array
                (
                    [0] => The template id field is required.
                )

            [first_name] => Array
                (
                    [0] => The first name field is required.
                )

        )

    [format:protected] => :message
)

但是我想像下面

Array
(
    [0] => The template id field is required.
    [1] => The first name field is required.
)

有特定用途,因此需要 提前谢谢

解决方法

您可以尝试向MessageBag询问所有消息:

$validation->messages()->all()
,

您可以使用验证器类中提供的getMessageBag方法。

 $validation->getMessageBag()->first();

您还可以如下设置自定义错误消息:

if(User::where('email',$email)->first())
{
    $validator->getMessageBag()->add('password','Please enter correct Password');
}
else
{
    $validator->getMessageBag()->add('email','Email does not exists');
}
,
$validation = Validator::make($request->all(),[
            'template_id' => 'required','email' => ['required','email','unique:user,email'],'first_name' => 'required','last_name' => 'required',]);

如果您希望同时发生所有错误,则只需编写类似

的代码
$validation->messages()->all()

,或者如果您想要一个一个的错误,请编写类似

的代码
$validation->messages()->first()

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...