【问题标题】:lumen customize validation response流明自定义验证响应
【发布时间】:2017-09-24 17:39:32
【问题描述】:

如果验证在流明中失败,我正在尝试创建自定义响应。但得到默认响应。期待像

这样的回应
    [
       'code'    => 406,
       'message' => "forbidden",
       'errors'  => {
                      "phone": [
                             "The phone must be 11 digits."
                               ]
                    },
    ]

但得到这样的默认响应

{
  "phone": [
    "The phone must be 11 digits."
  ]
}

这是我尝试过的。

public function validatePhoneNumber(Request $request)
    {
        try {
            $this->validate($request, ['phone' => 'required|digits:11']);
        } catch (ValidationException $e) {
            return response()->json([
                'code'    => 406,
                'message' => "forbidden",
                'errors'  => $e->getMessage(),
            ]);
        }
        return [
            'code'          => 200,
            'message'       => 'Phone number ok',
            'data'          => $request->phone
        ];
    }

【问题讨论】:

    标签: laravel validation lumen


    【解决方案1】:

    您可以在控制器中使用函数buildFailedValidationResponse

    protected function buildFailedValidationResponse(Request $request, array $errors) {
        return ["code"=> 406 , "message" => "forbidden" , "errors" =>$errors];
    }
    

    【讨论】:

    • 这对我有用。谢谢。我在app/Http/Controllers/Controller.php 里面有这个。必须将use Illuminate\Http\Request; 放在文件顶部以避免buildFailedValidationResponse 函数定义约束出错。
    猜你喜欢
    • 2018-09-08
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 2018-06-17
    • 1970-01-01
    • 2018-12-28
    • 2014-11-25
    • 1970-01-01
    相关资源
    最近更新 更多