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?
}
メーラーにアクセスする最良の方法は何ですか? 管理者クラス経由か、エンティティ経由か、サービス経由か?
ありがとう