我正在调用ProductController::__construct()
的基本方法。
ProductController
正在扩展BaseController
。
BaseController
正在扩展Controller
。
BaseController
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
执行$this->getDoctrine()
时,它正在显示
错误:调用成员函数has()on null - DoctrineBundle未在您的应用程序中注册。
可以在下面的图像中看到。
我正在使用Symfony 2.7
答案 0 :(得分:1)
Symfony的基本控制器类实现了ContainerAwareInterface
接口,它有一个方法setContainer
。当您通过Symfony以常规方式使用此控制器时,它使用此接口在引擎盖下分配服务容器。
手动创建控制器实例时,必须自己处理。
因此,简而言之,您错过了使用$container
方法设置的setContainer
字段。这就是你获得
在 null
上调用成员函数has()
因为它尚未设定。