2015-03-12 2 views
1

У меня возникла проблема с пользовательским сертификатором класса.Laravel пользовательский класс валидатор: TranslatorInterface не является реальным

Вот мой CustomValidator.php

<?php 
use Illuminate\Validation\Validator; 


class CustomValidator extends Validator { 


    public function validateEmailExistence($attribute, $value, $parameters) 
    { 
     //check email existence 
    } 

} 

Здесь в validators.php вызвать класс

Validator::extend('check_email', '[email protected]'); 

В bindings.php решить валидатор

Validator::resolver(function($translator, $data, $rules, $messages) 
{ 
    return new CustomValidator($translator, $data, $rules, $messages); 
}); 

Когда я бегу я получить эту ошибку:

Target [Symfony\Component\Translation\TranslatorInterface] is not instantiable. 

Если я продлеваю валидатор через анонимную функцию, он отлично работает. Я знаю, что это проблема с привязкой интерфейса, но я не знаю, какую реализацию я должен использовать.

ответ

0

Ваш код, похоже, подходит для меня, но попробуйте создать поставщика услуг и зарегистрировать его в файле конфигурации приложения.

class ValidationServiceProvider extends ServiceProvider 
{ 
    public function register() 
    { 

    } 

    public function boot() 
    { 
     $this->app->validator->resolver(function($translator, $data, $rules, $messages) { 
      return new CustomValidator($translator, $data, $rules, $messages); 
     }); 
    } 
} 

Примечание: сделайте композитор dumpauto после создания поставщика услуг.

Сообщите мне, если вы все еще получаете ошибку.

Смежные вопросы