error twig page

Par joker_7, il y a 9 ans


Bonjour,

Voila je rencontre un petit problème avec mon code.
html.twig
{% for ck in calendrier %}
{% endfor %}

Ce que je fais

Décrivez ici votre code ou ce que vous cherchez à faire

 public function calendrierAction(Request $request) {
            if($request->getMethod()=='POST'){
 $name=$request->get('name');
 $email=$request->get('email');   
 $phone=$request->get('phone');
 $date=$request->get('date');
 $msg=$request->get('msg');     
 $zonetime=$request->get('zonetime');

         $cal = new calendrier();
 $cal->setname($name);
 $cal->setemail($email);
 $cal->setphone($phone);
 $cal->setdate($date); 
 $cal->setmsg($msg);
 $cal->setzonetime($zonetime);
              $en = $this->container->get('doctrine')->getEntityManager();
                                  $cal= $en->getRepository('AppBundle:calendrier')->findAll();

$en->persist($cal);
$en->flush();
return $this->render('default/calendrier.html.twig',array('calendrier' => $cal)); }
else{
return $this->render('default/calendrier.html.twig');
}

 }

Ce que je veux

parcourir table calendrier

Ce que j'obtiens

Variable "calendrier" does not exist.

3 réponses

Lartak, il y a 9 ans

Bonsoir.
Le message d'erreur est explicite, il te dit que la variable n'est pas définie au moment où tu veux l'utiliser.
Ce qui est normal étant donné que la variable n'est défini que lorsque ta fonction est utilisée avec une requête POST, par conséquent, si tu veux l'utiliser lorsque c'est une requête GET elle ne peut pas être définie d'après ton code.

Mehdikacim, il y a 9 ans

Peux-tu faire ceci après

$en = $this->container->get('doctrine')->getEntityManager(); $cal= $en->getRepository('AppBundle:calendrier')->findAll();

un print_r($cal);
Si ça te retourne une page blanche avec pleins de d'objets (classes )

Mehdikacim, il y a 9 ans

Mais, ce que je comprend pas, tu fais un findAll() pour que tu stocks dans $cal puis tu fais ta persistance des données :
$en->persist($cal);
$en->flush();

fais plutôt

$cal = new calendrier(); // tu renseignes ta classe calendrier $cal->setname($name); $cal->setemail($email); $cal->setphone($phone); $cal->setdate($date); $cal->setmsg($msg); $cal->setzonetime($zonetime); //Tu met des données en bdd $en->persist($cal) $en->flush(); // puis tu récup tout le cal $en = $this->container->get('doctrine')->getEntityManager(); $cal= $en->getRepository('AppBundle:calendrier')->findAll();

Toi, tu avant, tu avais écrasé $cal.