dongye3917 2017-11-21 10:50
浏览 101
已采纳

Symfony将doctrine添加到services.yml和自定义扩展

What I want achieve is call doctrine ini TwigExtension, I get some code from google and stackoverflow, like this :

service.yml

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

AppBundle\Twig\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;
    }

}

I've followed all instruction from my source, but i still got error and cant call doctrine or do something with entitymanager here.

this is my error :

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.  

how to solve this?

  • 写回答

1条回答 默认 最新

  • douchuang1852 2017-11-21 10:54
    关注

    In service.yml, instead of doctrine : '@doctrine' you should have $doctrine : '@doctrine'.

    The error you get makes an attempt at telling you this by saying only integer or $named arguments are allowed - note the **$**named part.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?