0

我在控制器中有这段代码

public function newAction()
    {
$em = $this->getDoctrine()->getEntityManager();
$user = $this->container->get('security.context')->getToken()->getUser();

我收到此错误

致命错误:在第 86 行的 /home/xxxxx/Acme/UserBundle/Controller/UserController.php 中的非对象上调用成员函数 getUser()

4

3 回答 3

5

这意味着您的安全上下文未填充令牌。当您的操作的路由不在防火墙后面时,就会发生这种情况。

你应该检查你的防火墙模式security.yml

于 2012-08-15T04:55:55.547 回答
1
  1. 确保您使用 Symfony 调试栏登录。如果您可以看到那里已记录,那么它应该可以正常工作

  2. 还要看看该路径是否在防火墙后面。如果它不是即使您已登录但您不会获得用户

于 2012-08-15T04:54:42.480 回答
0

我遇到了同样的问题。我的错误如下:

安全.yml

access_control:
    - { path: ^/admin/*, roles: ROLE_ADMIN }

我不得不更改出现错误的控制器:

路由.yml(坏)

admin_bets:
    resource: "@adminBundle/Resources/config/routing/bets.yml"
    prefix:   /bets

对此:

路由.yml(好)

admin_bets:
    resource: "@adminBundle/Resources/config/routing/bets.yml"
    prefix:   /admin/bets
于 2015-12-16T06:19:05.617 回答