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)
选择适合您需要的那个。
当管理员在 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)
选择适合您需要的那个。