I try to send a Swift mail from the commandline using a Symfony command. Though I get the following exception.
Fatal error: Call to undefined method Symfony\Bundle\TwigBundle\Debug\TimedTwigE
ngine::renderView() in ...
A container is added to this class which I got from the command that is made ContainerAwareCommand
The code of the function lookslike this:
private function sendViaEmail($content) {
$message = \Swift_Message::newInstance()
->setSubject('Hello Email')
->setFrom('[email protected]')
->setTo('[email protected]')
->setBody(
$this->container->get('templating')->renderView(
'BatchingBundle:Default:email.html.twig', array('content' => $content)
)
);
$this->get('mailer')->send($message);
}
Update
The line where the exception happens is $this->container->get('templating')->renderView(
As you can see in the code the last line would probably fail aswell as it finally gets there.
As the error message said, there is no renderView
method in the TwigEngine
. renderView()
is a shortcut in the symfony base controller class:
namespace Symfony\Bundle\FrameworkBundle\Controller
class Controller extends ContainerAware
{
/**
* Returns a rendered view.
*
* @param string $view The view name
* @param array $parameters An array of parameters to pass to the view
*
* @return string The rendered view
*/
public function renderView($view, array $parameters = array())
{
return $this->container->get('templating')->render($view, $parameters);
}
}
There you can see the correct method to render a view with the templating
service.
$this->container->get('templating')->render(
'BatchingBundle:Default:email.html.twig', array('content' => $content)
)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With