我是symfony世界的新人。 我想用我的服務中呈現,但我得到這個錯誤我的服務中的RenderView
調用未定義的方法的RenderView
我知道的RenderView是
/**
* 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);
}
快捷方式,但我不不知道我在服務中注射了什麼。我知道,即使是與php app/console container:debug
命令我可以看到我提供的所有服務,但我不知道如何可以採取/選擇正確的
更新
我嘗試添加
arguments: [@mailer,@templating]
但我得到了ServiceCircularReferenceException
UPDATE
我改變了我的service.yml與
arguments: [@service_container]
,甚至我的服務
$email = $this->service_container->get('mailer');
$twig = $this->service_container->get('templating');
使用郵件服務(SWIFT)和渲染。
我不認爲這是最好的解決方案。我想只注射mailer
和templating
UPDATE賈森的回答 我使用Symfony的2.3
我services.yml
services:
EmailService:
class: %EmailService.class%
arguments: [@mailer,@templating,%EmailService.adminEmail%]
我得到這個ServiceCircularReferenceException
這很明顯,但如果我注入'[@ mailer,@ templating]'我必須注入所有的容器。 – monkeyUser 2014-12-13 20:56:56
你正在創建什麼類型的服務?它是獨立的還是它是另一個事件的傾聽者?除非您正在監聽已經注入這些事件的事件,否則您不應僅通過郵件程序和模板獲得循環引用錯誤。我猜你正在使用模板來渲染用於電子郵件的模板。 – 2014-12-13 20:59:24
這是一個簡單的服務,可以創建電子郵件並呈現電子郵件模板 – monkeyUser 2014-12-13 21:02:04