我正在 CakePHP 2.0 中使用 SignMeUp 插件进行用户注册(其主页似乎已关闭 atm)。 在大多数情况下,一切都工作得很好,除了每当函数使用 $this->Email->send() 时我都会收到以下看似无关的错误:
尝试获取非对象的属性 [CORE\Cake\View\Helper\PaginatorHelper.php,第 111 行]
线路是:
public function beforeRender($viewFile) {
$this->options['url'] = array_merge($this->request->params['pass'],
$this->request->params['named']);
不确定这实际上与电子邮件有何关系,所以我不知道什么可能导致此错误,因为电子邮件实际上发送没有问题。
插件中的示例函数是:
protected function __sendActivationEmail($userData) {
$this->__setUpEmailParams($userData);
$this->__parseEmailSubject('activation', $userData);
if ($this->__setTemplate(Configure::read('SignMeUp.activation_template'))) {
if ($this->Email->send()) {
return true;
}
}
}
我个人认为这也没有什么问题...不知道还有什么可能导致此错误。如果你们中有人有任何想法,我们将不胜感激!
顺便说一句:如果我将调试设置为 0,函数执行后我会得到一个空白页面,而不是正确的重定向,所以这不是解决方案。
我遇到了同样的问题,因为我将分页器作为助手包含在内: public $helpers = array('时间','分页器'); 在 CakePHP 2.0 中,始终包含分页器,并且由于某种原因,如果在控制器中包含助手,似乎会与 sendMail 发生冲突。因此,如果您从助手列表中删除分页器,它应该可以正常工作而不会出现错误。