2016-12-21 2 views
0

は、私はサービスそのようなCongesServiceから関数を呼び出すifが含まれているCongeValidatorクラスを使用して私のSF2プロジェクトで:バリデータからユーザーを取得| Symfony2の

if (!$this->congeService->RTTCheck($conge)) {} 

と呼ばれる機能は以下のようになります。

public function RTTCheck($conge, $user){ 
    // $user   = $this->get('security.context')->getToken()->getUser(); 
    $nbJoursConge = $this->getNombreJoursPoses($conge->getCngDateDebut(), $conge->getCngDateFin(), $conge->getCngDateDebutDemi(), $conge->getCngDateFinDemi(), $user); 
    $restants  = $this->RTT_restants($user); 
    if(fmod($restants, 0.5)==0) 
     if($nbJoursConge-floor($restants) >= 0) return true; 
    return false; 
} 

として、私の問題は、その関数を使うためには、ユーザー(現在のもの、パラメータとしてもよい)を取得する必要があるということです。 しかし、この関数はコントローラでは決して呼び出されません:Validator:/ をユーザの殺人で適切に取得する方法はわかりません。

どのように管理できますか?前もって感謝します。

答えて

0

symfonyのバージョンに応じてsecurityContextまたはTokenStorageをサービスに注入する必要があります。

次にあなたがこの

$context->getToken()->getUser()

+0

のようなユーザーを呼び出すことができますが、あなたの答えをありがとう:)私は2.6.5バージョンを持っています。今すぐそれを試してみると、私は自分の考えに戻ってきます –

関連する問題