2

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

在此处输入图像描述

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

我想它类似于这个主题或这个堆栈溢出主题

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

    // send welcome email to new user
}

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

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

4

1 回答 1

3

我将根据我的要点与合同事件相关: https: //gist.github.com/webdevilopers/4eea317ade72a119a72e 使其适应您的需求。猜猜你可以简单地将“合同”重命名为“用户”。

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

$event = new ContractEvent($contract);

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

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

您可以从 Sonata 管理员为您提供的事件中进行选择,而不是创建自己的事件: 管理员的文档 - 参考 - 事件(主)

挑选适合您需求的那一款。

于 2015-02-23T09:43:12.190 回答