Je coince au niveau des formulaires.
Je me trouve dans une table de jointure qui permet de liée 3 tables.
Soit:
-Table1 -> Table des options
-Table2 -> Table des classes
-Table3 -> Table des livres
-Table4 ->Table de jointure.
Dans le fichier php de Form:
$builder
// J'aimerais acceder à la table 1 pour y ajouter une nouvelle ligne
->add('nomOption', 'text', array('read_only' => false , 'required' => true)) // Donc ici pour renseigner le nom
->add('libelleOption', 'text', array('read_only'=>false, 'required' => true)) // Ici pour renseigner le libelle
->add('classeclasse', 'entity', array('class' => 'LGB\BourseLivresBundle\Entity\Classe', 'property' => 'nom' , 'expanded' => true, 'multiple' => true, 'required' => true, 'label'=>" ")); // Ici pour afficher la liste des classes avec des checkbox
->add('livrelivre', 'entity', array('class' => 'LGB\BourseLivresBundle\Entity\Livre', 'property' => 'titre' , 'expanded' => true, 'multiple' => true, 'required' => true, 'label'=>" ")); // Ici pour afficher la liste des livres avec des checkbox
Dans le controller:public function gestionOptionAjouterAction()
{
// On crée un nouveau objet ClasseHasOption.
$Options = new Options();
// On récupère le type crée dans AddOptionsType.php dans le dossier form.
$form = $this->createForm(new AddOptionsType(), $Options);
$request = $this->container->get('request');
if( $request->getMethod() == 'POST' )
{
$form->bindRequest($request);
if( $form->isValid() )
{
$connect = $this->getDoctrine()->getEntityManager();
$connect->persist($Options);
$connect->flush();
// Envoie d'un message à la vue suivante //
$this->get('session')->setFlash('info', 'L\'option a bien été créé !');
return $this->redirect( $this->generateUrl('\\ajouter') );
}
}
return $this->render('LGBBourseLivresBundle:Admin:ajouterOptions.html.twig', array(
'OptionsForm' => $form->createView(),
));
}
Dans le twig:
<form action="" method="post" {{ form_enctype(OptionsForm) }}>
<table style="width: 100%">
<tr>
<td>
{{ form_label(OptionsForm.nomOption, "Nom de l'option : ") }}
{{ form_errors(OptionsForm.nomOption) }}
{{ form_widget(OptionsForm.nomOption) }}
</td>
<td>
{{ form_label(OptionsForm.libelleOption, "Libellé : ") }}
{{ form_errors(OptionsForm.libelleOption) }}
{{ form_widget(OptionsForm.libelleOption, {'attr': {'size': '50'}}) }}
</td>
</tr>
</table>
<table>
<tr>
<td>
{{ form_label(OptionsForm.classeclasse, "Liste des classes :") }}</b><br><br>
{{ form_errors(OptionsForm.classeclasse) }}
{{ form_widget(OptionsForm.classeclasse, {'attr': {'class': 'checkbox'}}) }}
</td>
</tr>
</table>
<p style="display:block;">{{ form_rest(OptionsForm) }}</p>
<hr>
<br>
<p style="text-align:right;"><input type="submit" value="Ajouter l'option" class="btn-success" /></p>
</form>
J'ai mis la liste des livres en suspend vue que c'est la meme chose que pour les classes. ça ça fonctionne.Mon problème est d'accédé en ecriture sur la table Option donc avec des cases à remplir. Pour en créer une nouvelle.
Merci d'avance de votre aide.
YoshV