为什么PHP Laravel为Rule-> unique()返回“500 Server Error”?

时间:2018-03-31 06:42:29

标签: laravel laravel-5.5

我在控制器中使用以下验证:

$request->validate([
'name' => [
       'required',
        'max:50',
        Rule::unique('center_classes')
       ]
]);

我也尝试了以下内容:

$request->validate([
'name' => [
       'required',
        'max:50',
        Rule::unique('center_classes', 'The class name exist.')
       ]
]);

我在 validation.php

中有以下一行
'unique' => 'The :attribute has already been taken.',

其余错误正常,但Rule->unique()是导致Error Server而不是传递消息的唯一错误。

  

[HTTP / 1.1 500内部服务器错误287ms]

1 个答案:

答案 0 :(得分:0)

您需要手动将验证错误发送到您的代码中

    //use first
    use Validator;    

    $response = array('response' => '', 'success'=>false);

    $rules = array('name' => 'unique:center_classes,name');       

    $validator = Validator::make($request->all(), $rules);

        if ($validator->fails()) {
            $response['response'] = $validator->messages();
        }else{

    //process the request
       }
    return response()->json($response);