【问题标题】:CakeMail doesn't recognize to and viewvars functionsCakeMail 无法识别 to 和 viewvars 函数
【发布时间】:2012-04-17 18:19:12
【问题描述】:

在我的用户控制器中我添加了:

App::uses('CakeEmail', 'Network/Email');
class UsersController extends AppController { 
      function sign_up() {
        $this->autoRender = false;
        $email = new CakeEmail('default');

        $email->template('sign_up');
        $email->emailFormat('html');
        $email->subject('Addience.com Sign Up');
        $email->to($this->request->query['email']);
        $email->viewVars(array('password' => $this->Password->generatePassword(), 'email' => $this->request->query['email'], 'key' => $this->Password->generateKey()));
        $email->send();
        $this->redirect('/');
    }

}

我的 email.php 配置文件如下所示:

class EmailConfig {

    public $default = array(
        'host' => 'ssl://smtp.gmail.com',
        'port' => 465,
        'username' => 'xxx@gmail.com',
        'password' => 'xxx',
        'from' => array('support@xxx.com' => 'xxx'),
        'transport' => 'Smtp'
    );
}

但是,我仍然得到:

Notice (8): Undefined index: email [APP\Controller\UsersController.php, line 311]

Notice (8): Undefined index: email [APP\Controller\UsersController.php, line 312]
You need specify one destination on to, cc or bcc.

Error: An Internal Error Has Occurred.
Stack Trace

#0 C:\xampp\htdocs\addience\Controller\UsersController.php(314): CakeEmail->send()
#1 [internal function]: UsersController->sign_up()
#2 C:\xampp\htdocs\cakephp-2.0.6\lib\Cake\Controller\Controller.php(473): ReflectionMethod->invokeArgs(Object(UsersController), Array)
#3 C:\xampp\htdocs\cakephp-2.0.6\lib\Cake\Routing\Dispatcher.php(104): Controller->invokeAction(Object(CakeRequest))
#4 C:\xampp\htdocs\cakephp-2.0.6\lib\Cake\Routing\Dispatcher.php(86): Dispatcher->_invoke(Object(UsersController), Object(CakeRequest), Object(CakeResponse))
#5 C:\xampp\htdocs\addience\webroot\index.php(98): Dispatcher->dispatch(Object(CakeRequest), Object(CakeResponse))
#6 {main}

为什么?

谢谢!

【问题讨论】:

    标签: email cakephp-2.0


    【解决方案1】:

    传递单个变量或数组

    $email->viewVars($variables);
    

    在您的电子邮件模板中打印此内容。那么您将能够看到所有变量 :)

    var_dump($this->viewVars);
    

    【讨论】:

      【解决方案2】:

      简单,

      $this->request->query['email']
      

      是空的:)

      还是谢谢你。

      【讨论】:

        猜你喜欢
        • 2018-02-15
        • 1970-01-01
        • 1970-01-01
        • 2011-04-26
        • 2020-12-09
        • 2011-07-10
        • 2017-06-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多