2012-04-01 18 views
1

Ich habe einen benutzerdefinierten Passwortvalidator, den mir jemand in einer Antwort an another question gegeben hat. Der Prüfer sieht wie folgt aus:Symfony2 Benutzereinheit, die keine benutzerdefinierte Validierungsklasse akzeptiert

<?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 
{ 
    // ... 
} 

Der Ort, wo ich versuche, diese Prüfung zu verwenden, in meiner User Entität ist, die wie folgt aussieht:

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

(Ich habe einige Code weggelassen, natürlich für Klarheit)

Das Problem, das ich habe, ist, dass meine Validator-Klasse wird nicht erkannt zu werden.

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

Warum konnte das passieren?

Antwort

1

Sie müssen die Einschränkung selbst schreiben. Es kommt nicht mit Symfony2.

+0

Okay. Ich weiß nicht, wie das geht, tut mir leid. Wie mache ich es? –

+0

Ich habe Code zur ursprünglichen Antwort hinzugefügt. –

+0

Süß, danke. (Ich hasse SO Kommentar Länge mindestens.) –

Verwandte Themen