1

プロジェクトで Symfony Service Configurator を使用して、インスタンス化後にサービスを構成しています ( Docs )。Configure メソッドでは、現在のユーザーをログに記録する必要があるため、コンテナーを注入し、Security.context サービスからトークンを取得しようとしましたが、取得しました常に NULL です。Configurator コンストラクトに Security.context のみを挿入しようとしましたが、同じ結果が得られました。

任意のアイデアpls

ありがとう。

クラス MyConfigurator
{
    プライベート $container;

    public function __construct(ContainerInterface $container)
    {
        $this->container = $container;
    }


    パブリック関数 configure()
    {
        $user = $this->container->get('security.context')->getToken();
        var_dump($ユーザー); // = ヌル
    }
}
4

2 に答える 2

1

セッションから UserId を取得し、データベースから現在のユーザーを取得することで問題を解決します。

UserId は、プロジェクトの AuthenticationListener によって以前に設定されています。そこで、Configurator コンストラクトを次のように変更します。

    /**
     * @param EntityManager $em
     * @param セッション $session
     */
    public function __construct(EntityManager $em, セッション $session)
    {
        $this->em = $em;
        $this->session = $session;
    }
于 2014-08-29T11:45:53.963 に答える