【问题标题】:renderView fails when using Symfony2 with SwiftMail将 Symfony2 与 SwiftMail 一起使用时,renderView 失败
【发布时间】:2012-04-05 14:26:27
【问题描述】:

我想在 Symfony2 中使用 SwiftMailer。 首先,我创建了一个新控制器并从http://symfony.com/doc/current/cookbook/email/email.html 复制了示例。 当我尝试执行 renderView 时,我收到以下错误消息:Fatal error: Call to a member function get() on a non-object in var/www/project/Symfony/vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/Controller.php on line 84

我尝试了各种方法,但它们总是会导致控制器出错。

不仅renderView 而且$this->get('mailer')->send($message); 都在抛出错误。

【问题讨论】:

    标签: symfony swiftmailer


    【解决方案1】:

    你不能像普通类一样实例化一个控制器然后调用它的方法,因为你没有注入服务容器。改为创建邮件服务。阅读Service Container章节了解详情。

    【讨论】:

      【解决方案2】:

      试试这个:更改顺序,在创建新的 swift_message 之前获取mailer

      $this->get('mailer')->send($message);
      
      $message = \Swift_Message::newInstance()
      

      【讨论】:

      • 对不起,它也失败了。该错误现在位于 Symfony/Bundle/FrameworkBundle/Controller/Controller.php 的第 189 行,而不是 84 行。
      • Fatal error: Call to a member function get() on a non-object in /var/www/project/Symfony/vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/Controller.php on line 189
      • 看来你和swiftmailer没什么关系。问题出在您的新控制器;确保设置正确
      • 我已经找到了我的问题,或者更好的是是什么导致了它。当我访问另一个位于另一个包中的控制器时,我想实例化一个新的控制器。我不知道如何解决它或正确的方法是什么。任何提示都非常感谢,抱歉我对 symfony 不是很有经验。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-28
      • 1970-01-01
      • 2018-02-11
      • 1970-01-01
      • 1970-01-01
      • 2017-01-16
      • 1970-01-01
      相关资源
      最近更新 更多