【问题标题】:Laravel validation Using Closures使用闭包进行 Laravel 验证
【发布时间】:2018-07-17 23:08:16
【问题描述】:

使用 Laravel 5.4 进行开发我正在尝试 Laravel 文档中的示例:

$validator = Validator::make($request->all(), [
'title' => [
    'required',
    'max:255',
    function($attribute, $value, $fail) {
        if ($value === 'foo') {
            return $fail($attribute.' is invalid.');
        }
    },
],

]);

我收到此错误:

闭包类的对象无法转换为字符串

为什么?

【问题讨论】:

    标签: validation laravel-5


    【解决方案1】:

    在 5.4 中,如果您不想要一个闭包,您可以在验证规则之后传递它,如下所示:

    $validator = Validator::make($request->all(), [
        'title' => ['required', 'max:255'],
    ]);
    
    $validator->after(function ($validator) {
        if ($request->get('field') === 'foo') {
            $validator->errors()->add('field', 'Field is invalid.');
        }
    });
    
    if ($validator->fails()) {
        //
    }
    

    【讨论】:

      【解决方案2】:

      Laravel 5.4 中这不起作用。你需要更新到 Laravel 5.6,或者至少有 "illuminate/validation" version 5.6

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-03-06
        • 2022-01-12
        • 2017-03-26
        • 2015-04-09
        • 2016-08-30
        • 1970-01-01
        • 2021-01-18
        相关资源
        最近更新 更多