“参数”“用于路由”“必须匹配”[^ /] ++“(”“给定)以生成相应的URL。”

时间:2017-08-07 15:59:17

标签: symfony

我需要你的帮助 当我发送电子邮件时,会显示以下错误消息: 在渲染模板期间抛出异常(路由“front_Succes”通知的“参数”必须与[^ /] ++“匹配”(“用于生成相应的URL。”)。(500内部服务器错误)

这是我的控制器: `public function envoieAction($ id,Request $ request){

    $em = $this->getDoctrine()->getManager();
    $Soumission = $em->getRepository('tutoBackofficeBundle:Soumission')->find($id);
    $Soumission->setEtat($em->getRepository("tutoBackofficeBundle:Etat")->findOneById('4'));



    $form = $this->createForm(new SoumissionType(), $Soumission);

    if ($request->getMethod() == 'POST') {
        $form->handleRequest($request);
        $users = $em->getRepository('tutoBackofficeBundle:User')->findAll();



        $lastId = $Soumission->getId();
        $soum = $em->find('tutoBackofficeBundle:Soumission', $lastId);

        $valide = $soum->getEtat();

        if ($valide->getId() == 4) {


            foreach ($soum->getEvaluateur() as $evlt) {
                $i = 0;
                $prof = array();
                foreach ($users as $user) {
                    $adresse = $evlt->getAdressemail();
                    $email = $user->getEmail();
                    if ($adresse == $email) {


                        $prof[] = $user;

                        foreach ($prof as $element) {

                            if ($element->getEtat()->getId() == 3) {

                                $notification = new \tuto\BackofficeBundle\Entity\Notification();

                                $notification->setSoumission($soum);
                                $notification->setEvaluationfinal();
                                $notification->setUser($element);
                                $notification->setDateNotif(new \DateTime());
                                $notification->setLu(false);
                                $em->persist($notification);
                                $i++;

只关注这个部分//

$transport = \Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, ' ssl')
                                                ->setUsername('a.b@gmail.com')->setPassword('abcd');

`

                                $mailer = \Swift_Mailer::newInstance($transport);
                                $message = \Swift_Message::newInstance()
                                        ->setSubject('Vous Avez un nouveau papier à évaluer')
                                        ->setFrom('yahia1.sarra2@gmail.com')
                                        ->setTo($adresse)

                                        ->setBody($this->renderView('tutoBackofficeBundle:Soumission:email2.html.twig', array('soumission' => $soum, 'evlt' => $evlt, 'notifId' => $notification)))
                                ;

                                $this->get('mailer')->send($message);



                                $em->persist($Soumission);
                                $em->flush();
                                $this->addFlash("success", "le papier a été envoyé avec succés");
                            }
                        }
                        return $this->redirectToRoute('tuto_soumission');
                        //$message="un Etat est modifié";
                    }
                }
            }
        }
    }
    return $this->render('tutoBackofficeBundle:Soumission:modif.html.twig', array(
                'form' => $form->createView(),
                    )
    );
}`

`

这是我的树枝:

 {%if evlt.civilite=='Mme' %}Chère {%else%}Cher {%endif%}Professeur «{{evlt.nom}}»

Nous avons le plaisir de vous informer que le 16ème Colloque International de l’ATM se tiendra les 07 et 08 avril 2018 à Hammamet, en Tunisie.En tant que Président du Comité Scientifique et afin de garantir le succès de cette 16ème édition du colloque, nous vous sollicitons de bien vouloir évaluer le papier intitulé «{{soumission.titrePapier}}» avant le 15 février 2018 et ce en cliquant sur le lien suivant : {{url('front_Succes',{'id':soumission.id,'notifId':notifId.id})}} // the problem here Pour vous simplifier la tâche, nous vous prions de bien vouloir utiliser la fiche d’évaluation en cliquant sur le lien suivant : {{url('front_questionnaire',{'soumission':soumission.id})}} Comptant également sur votre présence les jours du colloque, nous vous remercions, {%if evlt.civilite=='Mme' %}Chère {%else%}Cher {%endif%} collègue, pour votre précieuse collaboration. Bien Cordialement. Président du Comité d'Evaluation de l’ATM

这是路由

front_Succes:
path: /soumission_succes/{id}/{notifId}
defaults: {_controller: tutoFrontofficeBundle:Soumission:affiche }

这是函数affiche:

public function afficheAction(\tuto\BackofficeBundle\Entity\Soumission $id, \tuto\BackofficeBundle\Entity\Notification $notifId) {
    $em = $this->getDoctrine()->getManager();
    $notification = $em->getRepository('tutoBackofficeBundle:Notification')->findBy(array('soumission' => $id, 'user' => $this->getUser()));
    $notif = $em->find("tutoBackofficeBundle:Notification", $notifId);

    $notif->setLu(true);
    $em->persist($notif);
    $em->flush();
    return $this->render('tutoFrontofficeBundle:Soumission:affiche.html.twig', array('notification' => $notification));
}

1 个答案:

答案 0 :(得分:0)

我认为这只是代码中的一个错字。您正在使用“(”而不是notifId参数。