Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous,
j'utilise le module doctrine et j'ai un problème au niveau de la validation avec DoctrineModule\Validator\NoObjectExists.
Voici mon entité :
<?php /** * @ORM\Entity */ class User { public function getInputFilter() { if (!$this->inputFilter) { $inputFilter = new InputFilter(); $factory = new InputFactory(); $inputFilter->add($factory->createInput(array( 'name' => 'username', 'required' => true, 'filters' => array( array('name' => 'StripTags'), array('name' => 'StringTrim'), ), 'validators' => array( array( 'name' => 'DoctrineModule\Validator\NoObjectExists', 'options' => array( 'object_repository' => ..., 'fields' => array('username'), 'messages' => array( 'objectFound' => 'Cet identifiant est déjà utilisé' ) ) ) ) ))); $this->inputFilter = $inputFilter; } return $this->inputFilter; } }
Le problème est que le champ "object_repository" attend un Doctrine\Common\Persistence\ObjectRepository.
Comme $this->getObjectManager() n'est pas accessible dans l'entité, comment dois-je faire pour utiliser ce validateur ?
Autre question à propos de la validation : j'ai plusieurs formulaires pour l'utilisateur (inscription, connexion, mot de passe oublié...). Vaut-il mieux créer une classe Form avec tous les champs et utiliser $form->setValidationGroup() pour les champs concernés où de créer un formulaire pour chaque page ?
Merci pour votre aide
Hors ligne
Salut, tu peux utiliser l'interface ObjectManagerAwareInterface ou ObjectManagerProvider (un truc dans le genre) et tu dois créer un initializer pour le FormElementManager qui injectera automatiquement l'ObjectManager dans les classes qui implémentent cette interface .
Une petite recherche t'aurais permis de trouver : http://www.z-f.fr/forum/viewtopic.php?id=8805
Hors ligne