Я новичок в мире symfony. Я хочу использовать рендеринг внутри моей службы, но я получил эту ошибку
Вызов метода undefined 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
ОБНОВЛЕНИЕ После ответа Джейсона Я использую Symfony 2.3
my services.yml
services:
EmailService:
class: %EmailService.class%
arguments: [@mailer,@templating,%EmailService.adminEmail%]
Я получил этот ServiceCircularReferenceException