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

私は同じ問題を抱えていました。私の間違いは次のとおりです。

security.yml

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

これからエラーが発生したコントローラーを変更する必要がありました:

routing.yml (悪い)

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

これに:

routing.yml (良い)

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