2015-01-13 4 views
2

Я использую Symfony2, и я пытаюсь создать специальный валидатор для моего класса.symfony2 custom validator FatalErrorException

Я последовал за руководство найдено Here

Я получаю странные ошибки:

FatalErrorException: Compile Error: Cannot redeclare class Acme\MyProject\Validator\Constraints\isUniqueNameInPlaces in /home/myfolder/src/Acme/MyProjectBundle/Validator/Constraints/isUniqueNameInPlaces.php line 123

Однако файл isUniqueNameInPlaces.php имеет длину всего 14 строк. Я уверен, что сделал что-то глупое, но я не могу понять, что. Может кто-нибудь дать мне руку?

Вот мои isUniqueNameInPlaces

<?php 

    // src/Acme/MyProject/Validator/Constraints/UniqueNameInPlaces.php 
    namespace Acme\MyProject\Validator\Constraints; 

    use Symfony\Component\Validator\Constraint; 

    /** 
    * @Annotation 
    */ 
    class isUniqueNameInPlaces extends Constraint 
    { 
     public $message = 'Name is not unique'; 
    } 

А вот его валидатор

<?php 

    // src/Acme/MyProject/Validator/Constraints/isUniqueNameInPlacesValidator.php 
    namespace Acme\MyProject\Validator\Constraints; 

    use Symfony\Component\Validator\Constraint; 
    use Symfony\Component\Validator\ConstraintValidator; 

    class isUniqueNameInPlacesValidator extends ConstraintValidator 
    { 

     public function getTargets() 
     { 
      return self::CLASS_CONSTRAINT; 
     } 

     public function validate($protocol, Constraint $constraint) 
     { 
    //  my logic 
     } 
    } 
+0

Вы уверены, что имя 2 файла отражает имена классов? –

+0

Да, проверено дважды – Alberto

ответ

1

У вас уже есть isUniqueNameInPlaces класс в другом месте? Таким образом, ошибка Невозможно переопределить класс.
Дайте вашему классу isUniqueNameInPlaces какое-то другое имя и посмотрите, нормально ли тогда.

Edit:

Также не должен быть ваш файл
Acme/MyProject /Validator/Constraints/isUniqueNameInPlaces.php
, а не
Acme/MyProjectBundle/Validator/Ограничения/isUniqueNameInPlaces. php?

+0

уже пробовали. isUniqueNameInPlaces не определяется нигде. – Alberto

+0

прокомментируйте свой класс, очистите кеш и повторите попытку. Что происходит ? – rtome

+0

Если это не лучше, чем взломать ваш кеш жесткий путь: rm -rf app/cache/* и повторите попытку ... – rtome