0

'_route' をコンテナーからイベント リスナーに渡す必要があります。つまり、service_container 全体をイベント リスナー クラスに渡すというオーバーヘッドを発生させずに、リスナー サービスをコンテナー対応にする必要があります。

次のようなコード例を見てきました。

services: 
    root.path.locator: 
        class: Acme\Bundle\HelloBundle\Util\RootLocator 
        arguments: ['%kernel.root_dir%'] 

コントローラーでは、以下のコードのようなものを使用して「_route」を取得します。

$request = $this->container->get('request');
$routeName = $request->get('_route');

ただし、イベントリスナーでは、それを利用できません。

上記をどのように達成できますか?

ありがとう、

JB

4

1 に答える 1

1

サービス xml タグで に設定scopeします。requestこれにより、Request オブジェクトが自動的に挿入され、@request が引数として設定されます。yaml で、 と を設定scope: requestarguments: [@request]ます。

于 2012-07-12T00:03:11.833 に答える