【问题标题】:How to customize JSON format of error in validation in Lumen(Laravel)如何在 Lumen(Laravel) 中自定义验证错误的 JSON 格式
【发布时间】:2018-04-02 02:40:52
【问题描述】:

如果从 DB 获取数据时出现错误或任何其他问题,我会发送这样的错误消息:

return response()->json(['status' => 'Failed' ,'state'=>'100' , 'message'=>'You have not registered yet.' ], 401);

这给了我一个定义了所有内容的 JSON,因此无论问题是什么,我都可以轻松地显示消息。

但是在验证的情况下出现错误,我似乎没有能力改变错误响应JSON的格式。

   $this->validate($request, [
    'email' => 'required',
    'password' => 'required'
    ]);

我想将错误格式自定义为上面给出的格式,这样我就不必更改我的错误显示机制。

【问题讨论】:

    标签: php json laravel lumen


    【解决方案1】:

    您可以手动创建一个验证器,并在它失败时添加您的自定义响应,如下所示:

    $validator = Validator::make($request->all(), [
        'email' => 'required',
        'password' => 'required'
    ]);
    
    if ($validator->fails()) {
        return response()->json(['status' => 'Failed' ,'state'=>'100' , 'message'=> $validator->errors()->first() ], 401);
    }
    

    【讨论】:

    • 请添加一个来源,因为我已经浏览了文档但找不到好的解决方案
    • 只需将您示例中的 $this->validate(...) 调用替换为我上面的代码示例,它应该可以工作!
    • 我有它的工作,但一些博客或文档将是我未来帮助的好选择
    • 没问题!这是官方 laravel 文档中解释手动验证器的部分:laravel.com/docs/5.5/validation#manually-creating-validators
    猜你喜欢
    • 2017-01-20
    • 2016-05-07
    • 1970-01-01
    • 2013-12-26
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    • 2015-09-15
    • 1970-01-01
    相关资源
    最近更新 更多