のために、私は次の検証制約をRegistrationFormType持っている:ここで説明するように、私は(ConstraintValidatorを拡張する)一意のクラス(Contraintの延長)とUniqueValidatorを作成した一意性を確保するためにSymfony2の:UniqueValidatorフォーム
public function getDefaultOptions(array $options)
{
$collectionConstraint = new Collection(array(
'email' => array(
new NotBlank(),
new Email(array('message' => 'Ungültige E-Mail Adresse')),
),
'username' => new Unique(),
'code' => new MaxLength(array('limit'=>20)),
'plainPassword' => new MaxLength(array('limit'=>20)),
));
return array(
'csrf_protection' => false,
'validation_constraint' => $collectionConstraint,
);
}
問題は、私がフォームを送信でエラーを以下の取得、次のとおりです。
Catchable Fatal Error: Argument 1 passed to ...\Validation\Constraint\UniqueValidator::__construct() must be an instance of Doctrine\ORM\EntityManager, none given
それは思えますEntityManagerのはConstraintValidatorに注入されていないよ、私はしかし私のconfig.ymlにサービス定義を作成しました:
services:
eventiply.validator.unique:
class: Ajado\EventHubBundle\Validation\UniqueValidator
arguments:
entityManager: "@doctrine.orm.entity_manager"
tags:
- { name: validator.constraint_validator, alias: validator.unique }
任意のアイデアを、私はここに進歩できますか?
私は似たような問題を抱えています(http://stackoverflow.com/questions/8403440)。私はそれを決して解決しなかった。 – gilden