2013-10-28 52 views
0

我正尝试使用Sonata Admin Bundle创建自定义批处理操作,该操作会发送电子邮件。Sonata Admin - 访问邮件程序

问题是,我不知道如何访问swiftmailer。我有以下几点:

public function batchActionSend(ProxyQueryInterface $selectedModelQuery) 
{ 
    if($this->admin->isGranted('EDIT')=== false) { 
     throw new AccessDeniedException(); 
    } 

    $request = $this->get('request'); 
    $modelManager = $this->admin->getModelManager(); 

    $selectedModels = $selectedModelQuery->execute(); 

    try { 
     foreach ($selectedModels as $selectedModel) { 
      // send the email here? 
      $selectedModel->send(); 
      $modelManager->update($selectedModel); 
     } 
    } catch (\Exception $e) { 
     $this->get('session')->getFlashBag()->add('sonata_flash_error', $e->getMessage()); 

     return new RedirectResponse($this->admin->generateUrl('list',$this->admin->getFilterParameters())); 
    } 

    $this->get('session')->getFlashBag()->add('sonata_flash_success', sprintf('The selected requests have been sent')); 

    return new RedirectResponse($this->admin->generateUrl('list',$this->admin->getFilterParameters())); 

在我的实体我有以下几点:

public function send() 
{ 
    // send email here? 
} 

什么是访问邮件的最佳方式?通过管理员类别或通过实体或通过服务?

感谢

回答