2012-04-01 3 views
1

У меня есть собственный валидатор паролей, который кто-то дал мне в ответ на вопрос another question. Валидатор выглядит следующим образом:Symfony2 Пользовательский пользователь не подбирает настраиваемый класс валидатора

<?php 
namespace Symfony\Component\Validator\Constraints; 

use Symfony\Component\Validator\ConstraintValidator, 
    Symfony\Component\Validator\Constraint, 
    Symfony\Component\Security\Core\Encoder\EncoderFactoryInterface, 
    Symfony\Component\Security\Core\SecurityContextInterface, 
    JMS\DiExtraBundle\Annotation\Validator, 
    JMS\DiExtraBundle\Annotation\InjectParams, 
    JMS\DiExtraBundle\Annotation\Inject; 

/** 
* @Validator("user.validator.current_password") 
*/ 
class CurrentPasswordValidator extends ConstraintValidator 
{ 
    // ... 
} 

место, где я пытаюсь использовать этот валидатор в моем User сущности, которая выглядит следующим образом:

<?php 

namespace VNN\PressboxBundle\Entity; 

use Symfony\Component\Security\Core\User\UserInterface; 
use Doctrine\ORM\Mapping as ORM; 
use Doctrine\ORM\Mapping\JoinTable as JoinTable; 
use Doctrine\ORM\Mapping\JoinColumn as JoinColumn; 
use Symfony\Component\Validator\Constraints as Assert; 
use Symfony\Component\Validator\ExecutionContext; 
use Symfony\Component\Validator\Mapping\ClassMetadata; 
use Symfony\Component\Validator\Constraints\NotBlank; 
use Symfony\Component\Validator\Constraints\MaxLength; 
use Symfony\Component\Validator\Constraints\Email; 
use Symfony\Component\Validator\Constraints\CurrentPassword; 
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; 

/** 
* VNN\PressboxBundle\Entity\User 
* 
* @ORM\Table(name="user") 
* @ORM\Entity 
*/ 
class User implements UserInterface, \Serializable 
{ 
    public static function loadValidatorMetadata(ClassMetadata $metadata) 
    { 
     $metadata->addPropertyConstraint('current_password', new CurrentPassword()); 
    } 
} 

(я опустил код, Конечно, для ясности)

проблема у меня есть, что мой класс валидатора не распознается:.

Fatal error: Class 'Symfony\Component\Validator\Constraints\CurrentPassword' not found in /home/jason/pressbox/src/VNN/PressboxBundle/Entity/User.php on line 438

Почему это могло произойти?

ответ

1

Вы должны написать ограничение самостоятельно. Он не поставляется с Symfony2.

+0

Хорошо. Я не знаю, как это сделать, извините. Как мне это сделать? –

+0

Я добавил код к исходному ответу. –

+0

Сладкий, спасибо. (Я ненавижу минимальную длину комментария SO.) –

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