Comment ajouter des données supplémentaires pour symfony 2 formulaire
J'ai un formulaire pour mon entité appelée Book
et j'ai un type pour afficher un formulaire de mon point de vue. Dans ce type j'ai quelques champs qui sont mappés à des propriétés dans mon entité.
Maintenant, je veux ajouter un autre champ qui n'est pas mappé dans mon entité et la fourniture de certaines données de ce champ lors de la création de formulaires.
Mon Type ressemble à ceci
//BookBundle\Type\Book
public function buildForm(FormBuilderInterface $builder, array $options = null)
{
$builder->add('title');
$builder->add('another_field', null, array(
'mapped' => false
));
}
Le formulaire est créé comme ceci
$book = $repository->find(1);
$form = $this->createForm(new BookType(), $book);
Comment puis-je fournir des données initiales, maintenant, pendant la création de formulaires? Ou comment dois-je changer que la création du formulaire pour ajouter des données initiales à l' another_field
champ?
Que comptez-vous faire avec le domaine associé à l'entité?
Je veux obtenir les données soumises par la forme ou de la requête et de traiter les données manuellement.
Je veux obtenir les données soumises par la forme ou de la requête et de traiter les données manuellement.
OriginalL'auteur Benjamin Paap | 2013-01-08
Vous devez vous connecter pour publier un commentaire.
Moi aussi j'ai un formulaire avec des champs que la plupart des match défini précédemment entité, mais l'un des champs de formulaire a mapped à false.
Pour contourner ce problème dans le contrôleur, vous pouvez lui donner quelques données assez facilement comme ceci:
simple que cela. Puis, lorsque vous êtes de traitement des données du formulaire, pour être prêt pour l'enregistrer, vous pouvez accéder à la non-données mappées avec:
get()
appels:$form->get('nonMappedSubForm')->get('subFormField')->setData(...)
.A la recherche de comment récupérer des données à partir du champ supplémentaire. $form->get('nonMappedField')->getData(); Merci
OriginalL'auteur targnation
Une suggestion peut-être d'ajouter un argument du constructeur (ou "setter") sur votre BookType qui comprend le "another_field" des données, et en ajouter des arguments, définissez les données de paramètre:
Puis de construire:
OriginalL'auteur Mike
Vous pouvez modifier les paramètres de la requête comme ceci pour soutenir le formulaire avec des données supplémentaires:
De cette façon, votre formulaire sera rempli les valeurs correctes pour votre champ de rendu. Si vous souhaitez fournir de nombreux domaines, cela peut être une option.
OriginalL'auteur Benjamin Paap