"无法解决的依赖性解析" laravel 5.1中的错误自定义验证

时间:2016-01-19 09:33:45

标签: php laravel

要在laravel 5.1 中制作自定义验证规则,我在CustomValidators目录中创建了一个名为App/Validatiors的类,如下所示:

namespace  App\Validators;

    use App\Classes\Utilities;

    class CustomValidators extends \Illuminate\Validation\Validator
    {
        public function DateTime ($field , $value ,$param, $validator){
            dd($value);
        }
    }

AppServiceProvider.php中,我补充说:

Validator::extend('date_time', 'App\Validators\CustomValidators@DateTime');

并且在控制器的store()功能中我使用它:

$rules = array (
                'start_publish' => 'date_time',
            );

但是在运行App时出现了这个错误:

BindingResolutionException in Container.php line 824:
Unresolvable dependency resolving [Parameter #1 [ <required> array $data ]] in class Illuminate\Validation\Validator

直接在AppServiceProvider.php中定义 DateTime()函数时的诅咒,所有内容都是这样的:

Validator::extend('date_time', function ($field , $value ,$param, $validator){
                dd($value);
            });

关注custom validation laravel docs

时有什么问题

1 个答案:

答案 0 :(得分:7)

我发现了问题

在定义\Illuminate\Validation\Validator类时我不应该扩展CustomValidators,因为它会通过以下方式自动扩展Validator类:

Validator::extend('date_time', 'App\Validators\CustomValidators@DateTime');

实际上CustomValidators类必须是这样的:

namespace  App\Validators;

    use App\Classes\Utilities;

    class CustomValidators
    {
        public function DateTime ($field , $value ,$param, $validator){
            dd($value);
        }
    }