Lorsque plongement formes dans Symfony, le formulaire de niveau supérieur garde une trace de tout. Le schéma du widget, le schéma du validateur, les valeurs par défaut, etc. du formulaire incorporé ne sont plus utilisés directement. Vous pouvez voir ce qui se passe dans sfForm::embedForm
.
Notez que dans ce cas, car il est un validateur de poste, il est parfaitement acceptable d'ajouter au formulaire de niveau supérieur, à savoir:
$this->mergePostValidator(new MenuValidatorSchema());
Si vous voulez que le schéma de validateur sur le formulaire intégré et n'a pas validateur poste actuel, vous pouvez simplement faire:
$this->validatorSchema['foos']->setPostValidator(new MenuValidatorSchema());
Si elle a un existant, vous devrez les transformer en un sfValidatorAnd, faire quelque chose comme:
$this->validatorSchema['foos']->setPostValidator(new sfValidatorAnd(array(
'validators' => array(
$this->validatorSchema['foos']->getPostValidator(),
new MenuValidatorSchema()
)
)));
La syntaxe de cette dernière option est une des raisons pour lesquelles la mise en post validateurs sur le formulaire de niveau supérieur est l'option préférée lorsque disponible.
StackOverflow est une communauté et vous devez respecter certaines rulse. Quand quelque chose répond à votre question, acceptez cette réponse et fermez la question, ne la laissez pas comme ça. –