【问题标题】:Laravel validation after() - expects parameter 1 to be a valid callbackLaravel 验证 after() - 期望参数 1 是一个有效的回调
【发布时间】:2020-11-08 01:07:43
【问题描述】:

我不擅长编程,但我在 Laravel 中的验证已经到此为止了:

$validator = \Validator::make($post_data, $rules);
$validator->after(\App\Helpers\PostHelpers::validatePostTitle($validator, $request));

我被告知不要重复自己。如何在辅助类中使用 after() 函数和所需参数?

    namespace App\Helpers;
    
    class PostHelpers
    {
        public static function validatePostTitle($validator, $request) {
            // do some magic
        }
    }

Laravel 说:

call_user_func_array() expects parameter 1 to be a valid callback, no array or string given

在:

    public function after($callback)
    {
        $this->after[] = function () use ($callback) {
            return call_user_func_array($callback, [$this]);
        };
 
        return $this;
    }

【问题讨论】:

    标签: php laravel validation web frameworks


    【解决方案1】:

    函数after 需要回调作为参数。其中一种形式应该可以工作:

    $validator->after(function ($validator, $requst) { 
         return \App\Helpers\PostHelpers::validatePostTitle($validator, $request) 
    });
    

    $validator->after([\App\Helpers\PostHelpers::class, 'validatePostTitle' ]);
    

    有关 PHP 可调用对象的更多详细信息,请参阅manual

    【讨论】:

    • 很酷的答案!我不知道你可以这样调用!
    猜你喜欢
    • 2013-08-01
    • 1970-01-01
    • 2015-05-29
    • 2012-10-04
    • 1970-01-01
    • 2016-06-06
    • 2021-04-18
    • 1970-01-01
    • 2020-01-26
    相关资源
    最近更新 更多