Ich bin neu von symfony Welt. Ich möchte in meinem Dienst nutzen machen, aber ich habe diesen FehlerRenderView in Mein Service
Call to undefined Methode Render
Ich weiß, dass Render Verknüpfung von
/**
* 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);
}
Aber ich don‘ Ich weiß, was ich zu Injection in meinem Service habe. Ich weiß sogar mit php app/console container:debug
Befehl, den ich sehe alle meine Dienste zur Verfügung, aber ich weiß nicht, wie nehmen/wählen Sie die richtige
Update
Ich versuchte
arguments: [@mailer,@templating]
hinzufügen aber ich habe ServiceCircularReferenceException
UPDATE
änderte ich meine service.yml mit
arguments: [@service_container]
und sogar meinen Dienst
$email = $this->service_container->get('mailer');
$twig = $this->service_container->get('templating');
für Service-Mail (swift) und rendern.
Ich glaube nicht, dass es die beste Lösung ist. Ich würde gerne Injektion nur mailer
und templating
UPDATE Nach Jasons Antwort Ich bin mit Symfony 2.3
mein services.yml
services:
EmailService:
class: %EmailService.class%
arguments: [@mailer,@templating,%EmailService.adminEmail%]
Ich habe diese ServiceCircularReferenceException
das ist klar, aber wenn ich 'inje '[@ mailer, @ templating]' ich muss alle Container injizieren. – monkeyUser
Welche Art von Service erstellen Sie? Ist es ein Standalone oder ist es ein Zuhörer für ein anderes Event? Sie sollten keinen kreisförmigen Referenzfehler mit nur Mailer und Templating erhalten, es sei denn, Sie hören auf ein Ereignis, das diese bereits injiziert. Ich schätze, Sie verwenden das Template zum Rendern einer Vorlage, die für Ihre E-Mails verwendet wird. –
Es ist ein einfacher Dienst, der E-Mail erstellt und rendert emailTemplate – monkeyUser