2016-07-03 7 views
0

私はFosUserBundleを使用しています。ログイン(「接続中です」)とログアウト(「今すぐ接続していません」)に通知(flashbag)を追加します。Symfony2 FOSUserBundle FlashBag

私はハンドラをしてみてくださいましたが、私はログイン時に2つのメッセージをしました。..ログアウト

service.ymlでは動作しません:

logout_service: 
    class: App\UserBundle\Service\LogoutService 
    arguments: [@security.context,@session] 

クラス:

class LogoutService implements LogoutSuccessHandlerInterface { 
    private $security; 
    private $session; 

    public function __construct(SecurityContext $security,Session $session) 
    { 
     $this->security = $security; 
     $this->session = $session; 
    } 

    public function onLogoutSuccess(Request $request) 
    { 
     $this->session->getFlashBag()->add('notice, 'You're now disconnected.'); 
     return new RedirectResponse('app'); 
    } 
} 

と私のレイアウトで:

{% for flashMessage in app.session.flashbag.get('notice') %} 
    <div class="alert alert-success alert-dismissible"> 
     <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> 
     {{ flashMessage }} 
    </div> 
{% endfor %} 

私はこのトピックについての調査をしました..しかし、私は正解を見つけられません。

どうすればいいですか教えていただけますか?

答えて

1

あなたの解決策は正しいですが、ログアウトプロセスはデフォルトでユーザーのセッションを無効にします。フラッシュメッセージは表示されません。 security.ymlinvalidate_session: falseを設定する必要があります。

logout: 
    path: /logout 
    target:/
    invalidate_session: false 
    success_handler: logout_service 
関連する問題