更新MandrillTransport-CakePHP为2.4兼容

时间:2014-01-03 02:50:28

标签: php cakephp mandrill

我正在尝试在我的应用程序中使用插件MandrillTransport-CakePHP(https://github.com/khanlou/MandrillTransport-CakePHP/blob/master/MandrillTransport.php),但发送消息时收到错误。

我的发送代码:

$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-> _cakeEmail-> _template,但后来我收到有关访问受保护变量的错误。

对于2.0和2.4之间的CakeEmail更改有更多经验的人可以协助吗?

由于

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

我知道这是一个老问题,但对于未来的搜索者(像我一样),你可能会考虑一个似乎更积极维护的替代插件:https://github.com/a2design-company/Mandrill-CakePHP-plugin

我还没有使用它们,但它们看起来基本上是一样的。