[英]Symfony2 FOSUserBundle FlashBag
我使用FosUserBundle,我想在登錄(“您現在已連接”)和注銷(“您現在已斷開連接”)上添加一個通知(flashbag)。
我已經嘗試過使用Handler,但是在登錄時卻收到兩條消息..並且在注銷時不起作用
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 %}
我已經對該主題進行了任何研究。但是我沒有找到正確的答案。
你能解釋一下我該怎么辦嗎?
您的解決方案是正確的,但是默認情況下,注銷過程會使用戶的會話無效。 因此,不會顯示您的Flash消息。 您需要在security.yml中設置invalidate_session: false
。
logout:
path: /logout
target: /
invalidate_session: false
success_handler: logout_service
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.