我正在尝试设置一条flash消息,如果我在方法中渲染模板,这样可以正常工作,如下所示:
return $this->render('login/forgotten_password.html.twig', [
'form' => $form->createView(),
]);
但是,如果我返回RedirectResponse
未设置flash消息,即使我重定向到完全相同的方法:
return new RedirectResponse($this->generateUrl('forgotten_password', []));
为什么这不起作用,我该如何使其发挥作用?
答案 0 :(得分:0)
使用会话进行Flash消息显示。
在生成输出后使会话失效,并编写隐藏flashmessage div的javascript。
public class BillsCustomList extends ArrayAdapter<String>
{
private List<BillObject> dataList;
private Activity context;
public BillsCustomList(Activity context, List<BillObject> dataList)
{
super(context, R.layout.bills_list_view, doc_no);
this.context =context;
this.dataList = dataList;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
LayoutInflater inflater = context.getLayoutInflater();
if(convertView == null)
{
convertView= inflater.inflate(R.layout.bills_list_view, null, true);
}
// find view by id
...code
// get data from dataList by position
BillObject billObject = dataList.get(position);
textViewDocno.setText(billObject.doc_no);
textViewDt.setText(billObject.date);
// like this do more
return listViewItem;
}
}
jQuery隐藏Flash消息
<?php
if(isset($_SESSION['SUCCESS']) && !empty($_SESSION['SUCCESS'])){
if($_SESSION['SUCCESS']=='TRUE'){
$alert_class = 'alert-success';
}else{
$alert_class = 'alert-danger';
}
?>
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="alert <?php echo $alert_class?>" role="alert">
<?php
if(isset($_SESSION['MESSAGE']) && !empty($_SESSION['MESSAGE'])){
echo $_SESSION['MESSAGE'];
}
unset($_SESSION['SUCCESS']);
unset($_SESSION['MESSAGE']);
?>
</div>
</div>
</div>
<?php
}
?>
答案 1 :(得分:0)
您使用的是哪个版本的symfony?
我们在2.6.1上运行,如果你在重定向之前设置它,它就可以工作:
$request->getSession()->getFlashBag()->add("success", "Test");
答案 2 :(得分:0)
这应该可以在您的控制器中使用
$this->get('session')->getFlashBag()->add('info', 'Test');