Symfony2 Пользовательский объект не выбирает пользовательский класс валидатора - PullRequest
1 голос
/ 01 апреля 2012

У меня есть специальный валидатор паролей, который кто-то дал мне в ответ на другой вопрос .Валидатор выглядит так:

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

(Iконечно, для ясности пропущен некоторый код.)

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

Неустранимая ошибка: класс 'Symfony\ Component \ Validator \ Constraints \ CurrentPassword 'не найден в /home/jason/pressbox/src/VNN/PressboxBundle/Entity/User.php в строке 438

Почему это может происходить?

1 Ответ

1 голос
/ 01 апреля 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...