在FOSUserBundle中扩展symfony-mailer类
有人知道如何在FOSUserBundle中扩展Mailer类吗 我正在执行一个非常基本的家长电子邮件检查(所有验证都在表单上完成,以强制输入家长的电子邮件),如果在用户实体上填充家长电子邮件字段,则应将电子邮件发送到该地址,而不是用户的电子邮件 到目前为止,我已经尝试了以下方法:在FOSUserBundle中扩展symfony-mailer类,symfony,extending,fosuserbundle,Symfony,Extending,Fosuserbundle,有人知道如何在FOSUserBundle中扩展Mailer类吗 我正在执行一个非常基本的家长电子邮件检查(所有验证都在表单上完成,以强制输入家长的电子邮件),如果在用户实体上填充家长电子邮件字段,则应将电子邮件发送到该地址,而不是用户的电子邮件 到目前为止,我已经尝试了以下方法: namespace SSERugby\UserBundle\Mailer; use FOS\UserBundle\Mailer\Mailer as BaseMailer; use Symfony\Bundle\Fra
namespace SSERugby\UserBundle\Mailer;
use FOS\UserBundle\Mailer\Mailer as BaseMailer;
use Symfony\Bundle\FrameworkBundle\Templating\EngineInterface;
use Symfony\Component\Routing\RouterInterface;
class Mailer extends BaseMailer
{
public function sendConfirmationEmailMessage(UserInterface $user)
{
$email = $user->getEmail();
$parentEmail = $user->getParentEmail();
if(isset($parentEmail)&&(trim($parentEmail)!='')){
$email = $parentEmail;
}
$template = $this->parameters['confirmation.template'];
$url = $this->router->generate('fos_user_registration_confirm', array('token' => $user->getConfirmationToken()), true);
$rendered = $this->templating->render($template, array(
'user' => $user,
'confirmationUrl' => $url
));
$this->sendEmailMessage($rendered, $this->parameters['from_email']['confirmation'], $email);
}
}
它似乎只是忽略了被重写的类,并使用了默认值,在测试之前我已经清除了缓存
谢谢您应该使用扩展邮件类(在src\SSERugby\UserBundle\Resources\config\services.xml中)创建新服务,如: 仅供参考:我从FOSUserBundle默认邮件配置中复制了所有服务的参数。您可以向其中添加自己的参数。此外,您还可以在
<service id="my_mailer" class="SSERugby\UserBundle\Mailer\Mailer" public="true">
<argument type="service" id="mailer" />
<argument type="service" id="router" />
<argument type="service" id="templating" />
<argument type="collection">
<argument key="confirmation.template">%fos_user.registration.confirmation.template%</argument>
<argument key="resetting.template">%fos_user.resetting.email.template%</argument>
<argument key="from_email" type="collection">
<argument key="confirmation">%fos_user.registration.confirmation.from_email%</argument>
<argument key="resetting">%fos_user.resetting.email.from_email%</argument>
</argument>
</argument>
</service>
fos_user:
# ...
service:
mailer: my_mailer