【问题标题】:Why PHP Laravel returns `500 Server Error` for Rule->unique()?为什么 PHP Laravel 为 Rule->unique() 返回“500 服务器错误”?
【发布时间】:2018-03-31 06:42:28
【问题描述】:

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

$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 内部服务器错误 287 毫秒]

【问题讨论】:

    标签: laravel laravel-5.5


    【解决方案1】:

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

        //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);
    

    【讨论】:

    • 您想将 center_classes 作为数据库中的唯一对象吗?
    • 你能说出 center_classes 表名吗
    • 好的,center_classes 其中的字段包含唯一的类名
    • 我在 ans 上写 systax 请尝试主题
    • 它返回相同的东西。没修好。
    猜你喜欢
    • 2018-05-07
    • 2016-09-16
    • 1970-01-01
    • 1970-01-01
    • 2019-11-12
    • 2020-02-02
    • 2016-06-19
    • 2019-10-16
    • 1970-01-01
    相关资源
    最近更新 更多