J'ai effectivement fait quelques trucs pour pouvoir persister un utilisateur si son identifiant est passé par un paramètre url. (Action personnalisée de la liste d'utilisateurs).Symfony2, Sonata, FormMapper, ajouter un champ masqué à traiter dans PrePersist/PreUpdate
/admin/se/api/bundle/créer? user = 7
En fait, je ne pouvais pas trouver comment envoyer l'entité utilisatrice retourné par un findByOne (array (« id » => $ user_id)) donc je suppose que je vais devoir passer le user_id $ par un champ caché et de gérer sa valeur dans un PrePersist
passant Sinon, l'identifiant de cette façon
->add('user', 'hidden', array('data' => $user_id))
renverra une erreur:
Cette valeur est pas valide.
Symfony \ Composant \ Validateur \ ConstraintViolation objet (Symfony \ Composant \ Form \ Form) .children [user] = 7
causés par:
Symfony \ Composant \ Forme \ Exception \ TransformationFailedException Les formes composées attendent un tableau ou une valeur NULL à la soumission.
Ceci est ma première tentative qui est pas travail:
$container = $this->getConfigurationPool()->getContainer();
$request = $container->get('request');
$user_id = $request->get('user');
if(!empty($user_id)){
$em = $this->getModelManager()->getEntityManager($this->getClass());
$user = $em->getRepository('ApiBundle:User')->findOneBy(array('id' => $user_id));
if($user){
$formMapper
->with('User', array('description' => '<strong>User : </strong>'.$user->getDisplayName()))
->add('user', 'hidden', array('data' => $user_id))
// this of course doesn't work as explained above. How can i have my own hidden input not related to any property
->end();
}
Alors, comment pourrais-je faire cela? Toute meilleure solution est la bienvenue.
Je sais que cette question est ancienne mais ne serait pas -> ajouter ("user.id", "hidden") faire l'affaire? – Tofandel