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

Symfony2, Sonata, UserBundle : Send email when user is enable on update

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

我必须考虑应该覆盖或扩展哪个文件。

我想它与此类似subject or this stack-overflow subject:

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

    // send welcome email to new user
}

我在管理包中找到了创建函数,但我想它不会只为 UserBundle 被覆盖。如果这确实是要走的路,我怎么能只为 UserBundle 指定呢?

有关信息,我在 UserBundle 中找不到任何创建或更新函数。仅在 AdminBundle 中。

我将从我的要点与合同事件相关: https://gist.github.com/webdevilopers/4eea317ade72a119a72e 根据您的需要进行调整。我猜你可以简单地将 "Contract" 重命名为 "User".

然后将事件添加到您的管理中的某处class:

$event = new ContractEvent($contract);

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

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

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

选择适合您需要的那个。