为了在 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
当我直接定义 DateTime() 函数时AppServiceProvider.php
所有事情都是这样工作的:
Validator::extend('date_time', function ($field , $value ,$param, $validator){
dd($value);
});
我遵循自定义验证时的问题是什么 拉拉维尔文档
我发现了问题
定义类时我不应该扩展'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);
}
}