Laravel 验证 after() - 期望参数 1 是一个有效的回调

Laravel validation after() - expects parameter 1 to be a valid callback

我不擅长编程,但我在 Laravel:

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

有人告诉我不要重复自己的话。如何在助手 class 中使用带有所需参数的 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;
    }

函数 after 需要回调作为参数。这些形式之一应该有效:

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

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

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