2012-04-12 14 views

答えて

1

コントローラでは、$this->get('translator')を使用できます。詳細情報here。しかし、コントローラの部分を理解していない。

編集:実装は次のようになり

サンプルサービス、あなたのクラスで

namespace Your\Class\Namespace; 
use Symfony\Component\Translation\TranslatorInterFace; 
use Symfony\Component\HttpFoundation\Request; 


class YourClass 
{ 

    private $translator; 
    private $request; 

    public function __construct(TranslatorInterFace $translator, Request $request) 
    { 
     $this->translator = $translator; 
     $this->request = $request; 
    } 

    public function aMethod(){ 
     $translator->trans('key'); 
     $session = $this->request->getSession(); 
    } 
    //..... 
} 

services.yml

my_service: 
    scope: request 
    class: FQCN\Of\YourClass 
    arguments: [@translator, @request] 

に以下の行を追加して、あなたのコントローラーますCクラスにアクセスする、

$this->get('my_service'); 
+0

$これはコントローラ/ビューでのみ動作します。私はライブラリ/他のクラスからコントローラを取得する必要があります。これを行う方法? – RKI

+0

クラスをサービスコンテナとして定義し、 '@ translator'サービスを注入する必要があります。 [here](http://symfony.com/doc/current/book/service_container.html#referencing-injecting-services) –

+0

私の編集したコメントをご覧ください。 –

関連する問題