在重定向的情况下,Flash消息似乎会被破坏。我编写了简单的测试代码:
public function actionTest($test = 0) {
if($test == 0) {
Yii::$app->getSession()->addFlash('success', 'Follow the white rabbit');
return Yii::$app->getResponse()->redirect(array('test', 'test' => 1));
}
return $this->render('test', []);
}
我调用不带参数的操作,它会添加一个flash并重定向。当它呈现页面时-flash不存在。
视图部分很好,因为如果我设置flash并在不重定向的情况下进行渲染,它会正确渲染。
为什么?
编辑:布局视图代码:
<?php
use frontend\widgets\Alert;
$this->beginPage();
echo $this->render('partials/head');
?>
<body class="no-sidebar">
<?= $this->beginBody() ?>
<div id="header">
<?= $this->render('partials/top') ?>
<?= $this->render(Yii::$app->user->isGuest ? 'menus/guest' : 'menus/registered') ?>
</div>
<!-- Main -->
<div id="main">
<?= Alert::widget() ?>
<?= $content ?>
</div>
<?= $this->render('partials/footer') ?>
<?= $this->endBody() ?>
</body>
</html>
<?php $this->endPage() ?>
在重定向中添加返回
Yii::$app->session->getFlash('key', 'message');
return $this->redirect(['yourAction']);
您的代码看起来不错,我不确定问题是什么。您可以尝试使用
return $this->redirect(['test', 'test' => 1]);
而不是
return Yii::$app->getResponse()->redirect(array('test', 'test' => 1));
这是大多数Yii示例的方式。但是在查看http://www.yiiframework.com/doc-2.0/yii-web-response.html#redirect()-细节后,您的代码看起来不错
你确定你的会话工作正常,并且在任何时候都没有破坏它吗?
这对我有用:
public function actionChangeDetails()
{
$model = Contact::findOne(Yii::$app->user->identity->id);
if ($model->load(Yii::$app->request->post()) && $model->save()) {
Yii::$app->session->setFlash('success', 'Form Saved');
return Yii::$app->getResponse()->redirect(['my-account/change-details']);
}
return $this->render('changeDetails', [
'model' => $model,
]);
}
我得到了相同的错误,直到我发现我的代码中缺少返回。因此,使用返回$this-
每个人登录后,我一直无法使用Laravel重定向。连接工作,在我登录后,它重定向到一个空白页面,但如果我更改url路径,我可以访问不同的网页。我们将不胜感激!我正在使用LDAP进行连接,它正在工作。 请让我知道,如果有任何其他代码,我应该提供。 非常感谢。 (重定向IfAuthenticated.php) 命名空间应用程序\ Http\中间件; 使用闭包;使用Illumb\Support\Faca
我有三个活动,每个都有一个按钮。Act1与btn1,Act2与btn2,Act3与btn3。我有另一个活动作为主活动,有三个图像视图:ImageView1、imageView2和imageView3,所有这些最初都是不可见的。我希望这样,当我在act1中单击btn1时,MainActivity中的imageView1将可见,而当再次单击btn1,ImageView 1将再次不可见。与imageVi
我不知道在modelAndView中发布后如何重定向 我该怎么做?
我是一个android编程新手,在我的应用程序中,我使用recycleview来显示SQLite数据库的内容,我将数据库读入一个Arraylist,我在recycleview中显示它。我已经成功实现了向左滑动(删除项目)和向右滑动(编辑项目)功能。我在向左滑动时遇到了一个问题,这意味着在删除功能中,我实现了一个撤销功能: (SequenceItem 是我的自定义项类,sequenceItemLis
我有一个登录表单,在单击时调用以下函数。 然后使用重定向 但我面临的问题是,当我第一次登录时,重定向无法工作。它设置了所有的cookie等等,但是它从来没有将用户重定向到想要的目录。所以我被迫在浏览器搜索栏中输入我想要的路由来重定向自己。 这意味着,一旦我强迫自己进入想要的目录,如果我注销(基本上删除cookies),并尝试再次登录。这一次重定向起作用了。 在我用Ctrl+F5清除所有缓存之前,它
问题内容: 我一直在寻找有关该主题的许多文章,但找不到适合我的解决方案。 我正在将Java EE 6与JSF 2.0结合使用(在JBoss AS 7.1上部署) 在我的我有: 并且我 希望在会话自动超时时将用户重定向到登录页面。 我尝试过的 方法1:使用过滤器 我尝试了以下过滤器: 在我尝试过的 和 过滤器在每次请求时都会被调用(在控制台中记录“被调用的适配器”)。 但是,会话超时时不会调用它。