Symfony2,Sonata,UserBundle:在更新时启用用户时发送电子邮件

时间:2015-02-20 14:50:23

标签: symfony swiftmailer sonata-user-bundle sonata

我希望能够在管理员在Sonata管理面板中启用用户时向用户发送电子邮件。

enter image description here

我必须知道我应该覆盖或扩展哪个文件。

我认为它类似于此subject或此stack-overflow subject

/**
 * {@inheritdoc}
 */
public function create($object)
{
    parent::create($object);

    // send welcome email to new user
}

我在admin包中找到了create函数,但我想它不会仅为UserBundle重写。如果它确实是要走的路,我怎么能只为UserBundle指定?

有关信息,我在UserBundle中找不到任何创建或更新功能。仅限于AdminBundle。

1 个答案:

答案 0 :(得分:3)

我将从我的要点谈到合同事件: https://gist.github.com/webdevilopers/4eea317ade72a119a72e 根据您的需求进行调整。猜猜你可以简单地重命名"合同"到"用户"。

然后在管理类的某处添加事件:

$event = new ContractEvent($contract);

$dispatcher = $this->get('event_dispatcher');
$dispatcher->dispatch(
    ContractEvents::CONTRACT_CREATED,
$event
); 

有关如何注入SwiftMailer的详细信息,请参阅要点。

您可以选择Sonata Admin为您提供的活动,而不是创建您自己的活动: Admin's documentation - Reference - Events (master)

选择适合您需求的那个。