在Laravel中扩展验证器时出错


Error when trying to extend validator in Laravel

我一直在使用以下验证我的表单在Laravel:

public function isValid($data, $rules)
    {
        $validation = Validator::make($data, $rules);
        if($validation->passes()){
            return true;
        }
        $this->messages = $validation->messages();
        return false;
    }

传递给它的规则很简单:

$rules = [
            'name' => 'required',
            'type' => 'required'
        ];

$data为输入后数据。现在我需要为此添加一个自定义验证扩展,特别是要确保输入字段round2的值大于输入字段round1的值。查看文档,我尝试了以下语法,我认为应该是正确的,但我一直得到一个错误。

        $validation->extend('manual_capture', function($attribute, $value, $parameters)
        {
            return $value > $parameters[0];
        });

那么我可以用$attribute = 'round1', $value = $data['round1']$parameters = [$data['round2']]来调用它。

错误是Method [extend] does not exist. -我不确定我对整个概念的理解是否正确,所以有人能告诉我如何使它工作吗?文档只有两段关于这个

将以下内容放入route.php

Validator::extend('manual_capture', function($attribute, $value, $parameters)
{
    return $value > $parameters[0];
});

附加文档在这里

然后像这样使用:

$rules = [ 'foo' => 'manual_capture:30'];