Bonjour, j'ai mon entité Diplome,
<?php
namespace App\UserBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Diplome
*
* @ORM\Table(name="tr_diplome")
* @ORM\Entity(repositoryClass="App\UserBundle\Repository\DiplomeRepository")
*/
class Diplome
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="App\UserBundle\Entity\User")
* @ORM\JoinTable(name="tr_user_id")
* @ORM\JoinColumn(nullable=false)
*/
private $user;
/**
* @var string
*
* @ORM\Column(name="titre", type="string", length=255)
*/
private $titre;
/**
* @var string
*
* @ORM\Column(name="date_obt", type="string", length=255)
*/
private $dateObt;
/**
* @var string
*
* @ORM\Column(name="Ecole", type="string", length=255)
*/
private $ecole;
/**
* @var string
*
* @ORM\Column(name="commentaire", type="string", length=255, nullable=true)
*/
private $commentaire;
/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set titre
*
* @param string $titre
*
* @return Diplome
*/
public function setTitre($titre)
{
$this->titre = $titre;
return $this;
}
/**
* Get titre
*
* @return string
*/
public function getTitre()
{
return $this->titre;
}
/**
* Set dateObt
*
* @param string $dateObt
*
* @return Diplome
*/
public function setDateObt($dateObt)
{
$this->dateObt = $dateObt;
return $this;
}
/**
* Get dateObt
*
* @return string
*/
public function getDateObt()
{
return $this->dateObt;
}
/**
* Set ecole
*
* @param string $ecole
*
* @return Diplome
*/
public function setEcole($ecole)
{
$this->ecole = $ecole;
return $this;
}
/**
* Get ecole
*
* @return string
*/
public function getEcole()
{
return $this->ecole;
}
/**
* Set commentaire
*
* @param string $commentaire
*
* @return Diplome
*/
public function setCommentaire($commentaire)
{
$this->commentaire = $commentaire;
return $this;
}
/**
* Get commentaire
*
* @return string
*/
public function getCommentaire()
{
return $this->commentaire;
}
/**
* Set user
*
* @param \App\UserBundle\Entity\User $user
*
* @return Diplome
*/
public function setUser(\App\UserBundle\Entity\User $user)
{
$this->user = $user;
return $this;
}
/**
* Get user
*
* @return \App\UserBundle\Entity\User
*/
public function getUser()
{
return $this->user;
}
}
avec le formulaire DiplomeType.php,
<?php
namespace App\UserBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class DiplomeType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('titre')
->add('dateObt')
->add('ecole')
->add('commentaire')
->add('user')
;
}
/**
* @param OptionsResolver $resolver
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'App\UserBundle\Entity\Diplome'
));
}
}
le controller DiplomeController.php
public function newAction(Request $request)
{
$diplome = new Diplome();
$form = $this->createForm('App\UserBundle\Form\DiplomeType', $diplome);
$form->handleRequest($request);
if ($form->isSubmitted()) {
$em = $this->getDoctrine()->getManager();
$em->persist($diplome);
var_dump($em);
$em->flush();
return $this->redirectToRoute('app_member_profil');
}
return $this->render('AppMemberBundle:Default:Profil/Form/diplome.html.twig', array(
'diplome' => $diplome,
'form' => $form->createView(),
));
}
ainsi que la vue diplome.html.twig
{{ form_start(form) }}
{{ form_widget(form) }}
{{ form_end(form) }}
je souhaite exécuter l'action du controller directement dans une vue en utilisant
{{ render(controller('AppMemberBundle:Diplome:new')) }}
le formulaire d'affiche bien mais, lorsqu'on entre des informations et clique sur le bouton enregistrer, aucune information n'est enregistrer dans la BD, quelqu'un pourra t'il m'aider?