2013-07-31 25 views
0

我有一個與raports發送電子郵件的問題。我創建了一些數據,然後嘗試將它作爲電子郵件發送給用戶。但電子郵件沒有得到解答。我正在使用配置爲Symfony cookbool的swiftmailer。 swiftmailer的參數設置正確,因爲來自FosUserBundle的電子郵件沒有問題。我有寫一個方法在COMAND行使用它的代碼如下電子郵件不會發送給用戶

class DailyRaportCommand extends ContainerAwareCommand 
{ 
protected function configure() 
{ 
    $this 
     ->setName('raport:daily') 
     ->setDescription('Send daily raports to the Users'); 
} 

protected function execute(InputInterface $input, OutputInterface $output) 
{ 
    $em = $this->getContainer()->get('doctrine')->getEntityManager(); 
    $users = $em->getRepository('GLUserBundle:User')->findAllByRaport('DAILY'); 

    foreach($users as $user) 
    { 
     $date_to = new \DateTime(); 
     $date_to = $date_to->sub(date_interval_create_from_date_string('1 day')); 
     $date_from = new \DateTime(); 
     $date_from = $date_from->sub(date_interval_create_from_date_string('1 day')); 
     $format = "Y-m-d"; 

     $raport = array(); 

     foreach($user->getShops() as $shop) 
     { 
      $raport[$shop->getName()] = array(); 

      $shop_list = array();    
      $shop_list[] = $shop->getId(); 
      $groupBy = array(); 
      $all_policies = $em->getRepository('GLPolicyBundle:Policy') 
         ->findAllByOptions($shop_list, $date_from, $date_to, $groupBy); 
      $raport[$shop->getName()]['all'] = $all_policies; 

      $groupBy[] = 'typePolicy'; 
      $policies_by_type = $em->getRepository('GLPolicyBundle:Policy') 
         ->findAllByOptions($shop_list, $date_from, $date_to, $groupBy); 
      $raport[$shop->getName()]['type'] = $policies_by_type;   

      $groupBy[] = 'bundle'; 
      $policies_by_bundle = $em->getRepository('GLPolicyBundle:Policy') 
         ->findAllByOptions($shop_list, $date_from, $date_to, $groupBy); 
      $raport[$shop->getName()]['bundle'] = $policies_by_bundle; 

     } 

     $message = \Swift_Message::newInstance() 
       ->setSubject('Dzienny raport sprzedaży') 
       ->setFrom('g#######[email protected]') 
       ->setTo($user->getEmail()) 
       ->setBody(
        $this->getContainer()->get('templating')->render(
         'GLRaportBundle:Raport:raport.html.twig', 
         array('raport' => $raport) 
        )); 
     $this->getContainer()->get('mailer')->send($message); 
} 

電子郵件的wiev在外面樹枝文件被渲染。如果有人指出這個問題的原因,我將不勝感激。

+0

我認爲你缺少收盤'}'你的第一個換' loop'。如果您在Controller中呈現模板並使用瀏覽器訪問它,會發生什麼?模板是否正確渲染?同時檢查'app/logs /'目錄中的日誌文件是否有錯誤。 – ferdynator

+0

與問題無關,只是一個快速提示。您應該將存儲庫'$ em-> getRepository('GLPolicyBundle:Policy')'設置爲一個變量並從那裏訪問它,而不是多次調用'getRepository()'。 – nifr

回答

相關問題