2016-07-11 10 views
0

私は管理者専用のフォームを持っています。管理者はデフォルトのパスワード1234をユーザーに追加することができます。作成した後に追加したユーザーに電子メールを送信したいと思います。迅速なメーラー部分を除いて、すべてがコントローラーで正常に機能します。フォームデバッグバーを送信した後、送信された電子メールは表示されません。 if文からその部分を削除した場合、正常に動作し、デバッグバーに電子メールが表示されます。しかし、if文の他の部分はうまく動作します。スウィフトメーラはメールを送信しません

ここは私の方法です。

/** 
* @Route("/add-user", name="adduser") 
*/ 
public function addUserAction(Request $request){ 
    $user = new User(); 
    $addform = $this->createForm(NewUserType::class,$user); 
    $addform->handleRequest($request); 
    if ($addform->isSubmitted() && $addform->isValid()) { 
     $user->setRoles(array('ROLE_USER')); 
     $password = $this->get('security.password_encoder') 
      ->encodePassword($user, $user->getPlainPassword()); 
     $user->setPassword($password); 
     $cellphone = $addform->get('cellphone')->getData(); 
     $ccode = $addform->get('ccode')->getData(); 
     $cellphone = preg_replace("/[^0-9A-Za-z]/", "", $cellphone); 
     $user->setCcode($ccode); 
     $user->setCellphone($cellphone); 
     $user->setPlainPassword(1234); 
     $user->setPassword(md5(1234)); 
     $em = $this->getDoctrine()->getManager(); 
     $em->persist($user); 
     $em->flush(); 

     $this->addFlash(
      'addeduser', 
      'You successfully added a user to the database' 
     ); 

     $emailMessage = \Swift_Message::newInstance() 
      ->setSubject('You have successfully signed up') 
      ->setFrom('[email protected]') 
      ->setTo($user->getUsername()) 
      ->setBody($this->renderView(':emails:addeduser.html.twig')); 
     $this->get('mailer')->send($emailMessage); 

     return $this->redirect($this->generateUrl('adduser')); 

    } 

    else{ 
      $this->addFlash(
       'addusererror', 
       'Oops! There was an error!' 
      ); 
     } 

    return $this->render(':user:adduser.html.twig', array('addform'=>$addform->createView())); 
    } 
+0

** HOW **? –

+0

「正確に」とは何ですか?あなたは間違いや何かを得ますか? –

+0

申し訳ありません。私もその質問を編集しました。問題は、私がフォームを提出するとき、if文でswiftmailerが何も起こらないということです。デバッグバーに何も表示されません。しかし、私がif文からswiftmailerを取り除くと、デバッグバーにはそれが想定していたとおりの電子メールが表示されます。 – mburakergenc

答えて

1

あなたは電子メールを送信し、その後すぐに(あなたのケースある)別のページにリダイレクトしている場合は、Webデバッグツールバーは、メールアイコンまたは次のページのレポートが表示されません。

代わりに、config_dev.ymlファイルのtrueには、オプションを設定すると、リダイレクトが停止し、送信された電子メールの詳細を含むレポートを開くことができます。

# app/config/config_dev.yml 
web_profiler: 
    intercept_redirects: true 

詳細はdocumentationを参照してください。

関連する問題