因此,我已经完成了Symfony 3的新安装,尝试设置一些API路由,但我无法访问控制器内的容器。Symfony控制器无法访问容器
我控制器从基本的Symfony控制器,它具有ContainerAwareTrait
延伸,但是当我尝试做$this->container->get('service')
我收到此错误:
"message": "Call to a member function get() on null",
"class": "Component\\Debug\\Exception\\FatalThrowableError",
"trace": [{
"namespace": "",
"short_class": "",
"class": "",
"type": "",
"function": "",
"file": "src\\Symfony\\Bundle\\FrameworkBundle\\Controller\\Controller.php",
"line": 50,
"args": []
}]
看起来像symfony的自己的控制器是无法找到的容器,是有什么我失踪?
这里是控制器的代码:
use FOS\RestBundle\Controller\Annotations\Get;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\JsonResponse;
class UsersController extends Controller
{
/**
* @Get()
*
* @return JsonResponse
*/
public function getUsersAction()
{
$users= $this->get('doctrine.orm.entity_manager')->getRepository('AppBundle:User')->findAll();
return new JsonResponse($users, 200):
}
}
添加通话您是否将控制器定义为服务?或者您是否使用标准路由机制? – Cerad
您是否试图自己实例化控制器(例如'$ controller = new MyController();')? – ccKep
请向我们展示控制器代码。 –