2017-11-21 6 views
0

Was ich erreichen will Anruf Lehre ini TwigExtension ist, erhalte ich einige Code von Google und Stackoverflow, wie folgt aus:Symfony Lehre hinzufügen und Erweiterungen Brauch services.yml

service.yml

twig.extension: 
     class: AppBundle\Twig\AppExtension 
     arguments: 
      doctrine : '@doctrine' 
     tags: 
      - { name: twig.extension } 

AppBundle \ Zweig \ AppEtension.php

<?php 

namespace AppBundle\Twig; 

use Symfony\Bridge\Doctrine\RegistryInterface; 

class AppExtension extends \Twig_Extension 
{ 
    protected $doctrine; 

    public function __construct(RegistryInterface $doctrine) 
    { 
     $this->doctrine = $doctrine; 
    } 

} 

ich habe alle Anweisung von meiner Quelle gefolgt, aber ich habe immer noch Fehler und kippt Anruf Lehre oder etwas mit EntityManager hier.

das ist mein Fehler:

Symfony\Component\DependencyInjection\Exception\InvalidArgumentException]                  
    Invalid key "doctrine" found in arguments of method "__construct()" for service "twig.extension": only integer or $named arguments are allowed. 

wie diese zu lösen?

+0

Check Link - https://stackoverflow.com/questions/44331420/symfony-upgrade-to-3-3-service-argument-error – habibun

+1

mit @ Versuchen doctrine.orm.entity_manager – Sermanes

+0

@ unter Jory Antwort die ist richtige Lösung. Das Problem ist, dass Sie eine ältere Version von Symfony verwenden, aber versuchen, der neuesten Dokumentation zu folgen. Wählen Sie die korrekte Symfony-Version in der oberen rechten Ecke der Service-Container-Dokumentation aus und sehen Sie sich den Unterschied an. – Cerad

Antwort

3

In service.yml, statt doctrine : '@doctrine' sollten Sie $doctrine : '@doctrine' haben.

Der Fehler, den Sie erhalten, macht einen Versuch, Ihnen dies zu sagen, indem Sie only integer or $named arguments are allowed sagen - beachten Sie den ** $ ** benannten Teil.

+0

wow, es funktioniert, danke Alter – yozawiratama