0

Sonata Admin Bundleを使用して、メールを送信するカスタム バッチ アクションを作成しようとしています。

問題は、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?
}

メーラーにアクセスする最良の方法は何ですか? 管理者クラス経由か、エンティティ経由か、サービス経由か?

ありがとう

4

1 に答える 1