2016-01-19 3 views
0

Для того, чтобы пользовательские правила проверки в Laravel 5,1, я создал класс с именем CustomValidators в App/Validatiors директории, как это:«Unresolvable зависимость разрешения» ошибки пользовательских проверки в Laravel 5.1

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\[email protected]'); 

и в store() функции контроллера я использовал это следующим образом:

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

Но при запуске приложения, эта ошибка:

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); 
      }); 

Что является проблемой, пока я следую custom validation laravel docs

ответ

5

Я нашел th е проблема

я не должен расширить \Illuminate\Validation\Validator при определении CustomValidators класса обусловлен автоматически расширяет Validator класса через:

Validator::extend('date_time', 'App\Validators\[email protected]'); 

фактически CustomValidators класса должен быть такой:

namespace App\Validators; 

    use App\Classes\Utilities; 

    class CustomValidators 
    { 
     public function DateTime ($field , $value ,$param, $validator){ 
      dd($value); 
     } 
    } 
Смежные вопросы