将MandrillTransport CakePHP更新为2.4兼容

将MandrillTransport CakePHP更新为2.4兼容,php,cakephp,mandrill,Php,Cakephp,Mandrill,我试图在我的应用程序中使用插件MandrillTransport CakePHP(),但在发送消息时收到错误 我的发送代码: $Email = new CakeEmail('mandrill'); $Email->viewVars(array( 'fname' => $this->User->field('fname'), )); $Email->template('welcome') ->from(array('sup

我试图在我的应用程序中使用插件MandrillTransport CakePHP(),但在发送消息时收到错误

我的发送代码:

$Email = new CakeEmail('mandrill');
    $Email->viewVars(array(
        'fname' => $this->User->field('fname'),
    ));
$Email->template('welcome')
    ->from(array('support@domain.com' => 'MySite'))
    ->sender(array('support@domain.com' => 'MySite'))
    ->to($this->User->field('email'))
    ->subject('Welcome to MySite, ' . $this->User->field('fname'))
    ->send());
发送邮件时,我会收到以下错误:

注意(8):未定义的属性:CakeEmail::$template[APP/Lib/Network/Email/MandrillTransport.php,第97行]

注意(8):未定义的属性:CakeEmail::$viewVars[APP/Lib/Network/Email/MandrillTransport.php,第105行]

我尝试将行更改为$this->\u cakeEmail->\u模板,但在访问受保护变量时出现错误

对于CakeEmail在2.0和2.4之间的变化有更多经验的人能提供帮助吗


谢谢

您必须使用相应的方法,即
template()
viewVars()
viewVars()
只返回
\u viewVars
属性的值,而
template()
返回一个数组,您必须使用
template()['template']
来获取
\u template
属性的值。

我知道这是一个老问题,但对于未来的搜索者(像我一样)您可能会考虑另一种插件,它看起来更加活跃:


我还没有使用过这两个模板,但它们看起来基本上做了相同的事情。

原来的插件使用的是mandrill模板,而不是CakeEmail模板,所以我删除了这些部分。我现在需要访问的是CakeEmail->[\u textMessage:protected],但我无法通过“无法访问受保护的属性CakeEmail::$\u textMessage”我知道了;我需要调用CakeEmail->message()。谢谢