DIP - symfony 3.4 - 参数EntityManagerInterface始终等于NULL

时间:2018-02-03 22:20:58

标签: php dependency-injection constructor symfony-3.4

我不明白为什么参数总是为NULL 该项目是关于symfony 3.4.x的博客基础(3.4.4) 我尝试取消缓存但没有任何改变。 我将版本从3.4.3更新到3.4.4但没有任何改变 需要一些东西来检查容器

class DefaultController extends Controller
{
    /**
     * @Route("/", name="homepage")
     */
    public function indexAction(Request $request, EntityManagerInterface $em=null)
    {
        //$em === NULL 
        $a = $this->get('doctrine.orm.default_entity_manager');
        var_dump($a);//this is valid entitymanger 


        // replace this example code with whatever you need
        return $this->render('default/index.html.twig', [
            'base_dir' => realpath($this->getParameter('kernel.project_dir')).DIRECTORY_SEPARATOR,
        ]);
    }
}

我的服务YAML文件是使用编辑器创建的原始文件

# Learn more about services, parameters and containers at
# https://symfony.com/doc/current/service_container.html
parameters:
    #parameter_name: value

services:

    # default configuration for services in *this* file
    _defaults:
        # automatically injects dependencies in your services
        autowire: true
        # automatically registers your services as commands, event subscribers, etc.
        autoconfigure: true
        # this means you cannot fetch services directly from the container via $container->get()
        # if you need to do this, you can override this setting on individual services
        public: false

    # makes classes in src/AppBundle available to be used as services
    # this creates a service per class whose id is the fully-qualified class name
    AppBundle\:
        resource: '../../src/AppBundle/*'
        # you can exclude directories or files
        # but if a service is unused, it's removed anyway
        exclude: '../../src/AppBundle/{Entity,Repository,Tests}'

    # controllers are imported separately to make sure they're public
    # and have a tag that allows actions to type-hint services
    AppBundle\Controller\:
        resource: '../../src/AppBundle/Controller'
        public: true
        tags: ['controller.service_arguments']

0 个答案:

没有答案