【问题标题】:Call to undefined method Cake\Mailer\Email::setFrom() coming in CakePHP 3调用 CakePHP 3 中未定义的方法 Cake\Mailer\Email::setFrom()
【发布时间】:2017-04-17 09:51:01
【问题描述】:

在使用 CakePHP 电子邮件代码时,我收到以下错误:- 调用未定义的方法 Cake\Mailer\Email::setFrom()

我的 CakePHP 3 电子邮件代码如下:-

我在控制器顶部添加了电子邮件类 使用 Cake\Mailer\Email;

在控制器的方法中,我使用以下代码:-

$email = new Email('default');
$email->setFrom(['info@example.com' => 'Test Email'])
->setTo('xyz@example.com')
->setSubject('Testing Email !!')
->send('Testing Email with CakePHP 3');

请帮帮我!

【问题讨论】:

  • 您使用的是 Cake
  • 如何查看确切的版本?
  • 它的 3.3.8,我在 vendor\cakephp\cakephp\VERSION.txt 中找到
  • 检查传输的配置,在这里你会找到更多信息book.cakephp.org/3.0/en/core-libraries/…
  • 向我们展示您的控制器的完整代码。它可能会有所帮助

标签: php email cakephp cakephp-3.0


【解决方案1】:

显然没问题!

您可以在实例化之前使用var_dump($email) 轻松进行测试。

您可以检查该方法是否存在于类中:

var_dump(method_exists(Cake\Mailer\Email::class, 'setFrom'));

或者:

var_dump(method_exists($email, 'setFrom'));

您也可以在 Cake\Mailer\Email 文件中导航,看看是否有方法。

【讨论】:

  • bool(false) 附带 var_dump(method_exists(Cake\Mailer\Email::class, 'setFrom'));
  • 但这会返回 true 吗? $email = new Cake\Mailer\Email(); var_dump(method_exists($email, 'setFrom'));
  • Class 'App\Controller\Cake\Mailer\Email' not found 即将到来,但我在顶部添加了 use Cake\Mailer\Email;
【解决方案2】:

你必须使用:

$email = new Email('default');
$email->from(['info@example.com' => 'Test Email'])
->to('xyz@example.com')
->subject('Testing Email !!')
->send('Testing Email with CakePHP 3');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    • 1970-01-01
    • 2012-08-15
    • 2013-05-28
    相关资源
    最近更新 更多