【问题标题】:Cakephp 3.4 - Email setTemplate() seems to be not workingCakephp 3.4 - 电子邮件 setTemplate() 似乎不起作用
【发布时间】:2017-02-27 05:38:08
【问题描述】:

我已经升级到 Cakephp 3.4,现在正在做我的代码迁移。我将电子邮件功能修改为以下内容:

 $email->setTemplate('welcome', 'registration')
       ->setSubject($subject)
       ->setEmailFormat('html')  
       ->setTo($toEmail)
       ->setFrom($fromEmail)
       ->send();

但是发送的电子邮件没有任何模板。但是,如果我将其改回

$email->template('welcome', 'registration')

然后电子邮件再次使用模板发送。 setTemplate() 函数似乎对我不起作用。谁能帮我弄清楚我错过了什么。

编辑: html文件位于 src/模板/电子邮件/html/welcome.ctp 布局位于 src/Template/Layout/Email/html/registration.ctp

【问题讨论】:

  • 模板的位置是否正确?它在哪里?
  • setTemplate() 方法不接受第二个参数,布局通过setLayout() 设置。
  • 非常感谢您的回复。 @ndm:我尝试根据您的建议使用 setLayout() 设置布局并且它正在工作。但是,文档的Sending Templated Emails 部分使用示例$email->setTemplate('welcome', 'fancy') 描述了使用布局。我们已使用上述格式在整个应用程序中设置电子邮件布局。我想在进行全部更改之前确认这一点。谢谢
  • 那些食谱示例绝对不正确。

标签: cakephp-3.4


【解决方案1】:

正如 cmets 中已经提到的,与已弃用的 Email::template() 方法不同,该方法可用于设置模板和布局,Email::setTemplate() 不接受第二个参数,而仅设置模板。

使用新引入的 setter 方法,可以通过单独的 Email::setLayout() 方法设置布局。 Cookbook 中发送模板电子邮件的示例不正确,现已修复。

另见

【讨论】:

    【解决方案2】:

    /// 电子邮件格式 HTML

    $email->setTemplate('欢迎', '注册') ->setEmailFormat('html') ->setTo('bob@example.com') ->setFrom('app@domain.com') ->发送();

    这将使用以下模板文件:

    src/模板/电子邮件/html/welcome.ctp src/Template/Layout/Email/html/registration.ctp

    /// 邮件格式TEXT

    $email->setTemplate('欢迎', '注册') ->setEmailFormat('文本') ->setTo('bob@example.com') ->setFrom('app@domain.com') ->发送();

    这将使用以下模板文件:

    src/模板/电子邮件/文本/welcome.ctp src/Template/Layout/Email/text/registration.ctp

    /// 两种电子邮件格式

    $email->setTemplate('欢迎', '注册') ->setEmailFormat('两者') ->setTo('bob@example.com') ->setFrom('app@domain.com') ->发送();

    这将使用以下模板文件:

    src/模板/电子邮件/文本/welcome.ctp src/模板/布局/电子邮件/文本/registration.ctp src/模板/电子邮件/html/welcome.ctp src/Template/Layout/Email/html/registration.ctp

    【讨论】:

      猜你喜欢
      • 2011-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多