【发布时间】:2016-12-09 17:08:36
【问题描述】:
我有 5 个类 Categoria、Produto、Subcategoria、Subproduto 和 Comanda,为了在所有类中执行搜索,我尝试提供如下服务:
命名空间 AppBundle\控制器; 使用 Symfony\Bundle\FrameworkBundle\Controller\Controller; 类 AccessClassController 扩展控制器{ /** * Retorna todas 作为 categorias ativas */ 公共功能分类AtivasAction() { $em = $this->getDoctrine()->getManager(); $categorias = $em->getRepository('AppBundle:Categoria')->findByAtivo(1); 返回$类别; } }我尝试访问 ComandaController 上的服务
类 ComandaController 扩展控制器 { ... 公共函数 newAction(请求 $request, $id) { $comanda = 新的 Comanda(); $categorias = $this->get('categorias.ativas')->CategoriasAtivasAction(); ...然后symfony返回错误
Call to a member function has() on null
500 Internal Server Error - FatalThrowableError
我的 services.yml 有
服务: 分类.ativas: 类:AppBundle\Controller\AccessClassController怎么了?
【问题讨论】:
-
您不能将控制器(扩展控制器)用作服务。
-
其实只要注入容器就可以了。这样做没有多大意义。在这种情况下,它是在没有容器的地方创建的 ComandaController。因此有错误。