DoctrineBundle未在基础控制器

时间:2017-10-26 13:35:12

标签: symfony doctrine symfony-2.7

我正在调用ProductController::__construct()的基本方法。

ProductController正在扩展BaseController

BaseController正在扩展Controller

BaseController

中也有Bellow行
use Symfony\Bundle\FrameworkBundle\Controller\Controller;

执行$this->getDoctrine()时,它正在显示

  

错误:调用成员函数has()on null - DoctrineBundle未在您的应用程序中注册。

可以在下面的图像中看到。

我正在使用Symfony 2.7

The DoctrineBundle is not registered in your application on $this->getDoctrine()

1 个答案:

答案 0 :(得分:1)

Symfony的基本控制器类实现了ContainerAwareInterface接口,它有一个方法setContainer。当您通过Symfony以常规方式使用此控制器时,它使用此接口在引擎盖下分配服务容器。

手动创建控制器实例时,必须自己处理。

因此,简而言之,您错过了使用$container方法设置的setContainer字段。这就是你获得

的原因
  

null

上调用成员函数has()

因为它尚未设定。