2017-08-07 35 views
2

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

这是我的控制器: `公共职能envoieAction($ ID,请求$请求){

$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('[email protected]')->setPassword('abcd'); 

`

       $mailer = \Swift_Mailer::newInstance($transport); 
           $message = \Swift_Message::newInstance() 
             ->setSubject('Vous Avez un nouveau papier à évaluer') 
             ->setFrom('[email protected]') 
             ->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 } 

这是函数网站公告:

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

@EmanuelPirovano做:) –

回答

0

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

相关问题