Yii2 重定向到上一页

Posted

技术标签:

【中文标题】Yii2 重定向到上一页【英文标题】:Yii2 redirect to previous page 【发布时间】:2015-04-17 17:14:44 【问题描述】:

现在我的应用程序正在使用 gridview 列出所有信息并且它也有分页。当用户单击分页号然后单击编辑然后保存时。它将用户重定向到查看页面。我想做什么将用户重定向到上一页(带有分页号的网址)。

【问题讨论】:

【参考方案1】:

如果您在表单中使用html::submitButton,并且希望被重定向到上一页,那么我建议您使用use yii\helpers\Url;

return $this->redirect(Url::previous('previous') ?: ['list']);

因为

return $this->redirect(Yii::$app->request->referrer);

将返回表单而不是模块列表。

【讨论】:

【参考方案2】:

@Kostas 说的是真的,但我认为如果您简单地编写以下代码会更好,因为 goBack 已经考虑到 goBack HOME 的空参数。

return $this->goBack(Yii::$app->request->referrer);

我测试了它,它工作正常。

【讨论】:

【参考方案3】:

您可以使用Yii::$app->request->referrer 返回用户所在的最后一页。

用法很简单:

return $this->redirect(Yii::$app->request->referrer);

您还需要考虑referrer 可以是null

return $this->redirect(Yii::$app->request->referrer ?: Yii::$app->homeUrl);

见the docs。

【讨论】:

第二个例子可以缩写为return $this->redirect(Yii::$app->request->referrer ?: Yii::$app->homeUrl); 但是当我们从一个访客未访问的 URL 到达时,没有获得引用 URL。我认为它可以通过返回 URL 获得,但我如何管理推荐 URL 和返回 URL。【参考方案4】:

Here 它说首先检查是否设置了referrer 是一个好习惯。 因此,如果您使用以下代码,如果您设置了 referrer,您将被重定向到最后一页;如果之前未设置返回 URL,您将被重定向到您配置的 homeUrl

return $this->goBack((!empty(Yii::$app->request->referrer) ? Yii::$app->request->referrer : null));

goBack() details

redirect details

【讨论】:

以上是关于Yii2 重定向到上一页的主要内容,如果未能解决你的问题,请参考以下文章

将一页重定向到 http 而不是 https

将404错误页重定向到任意页

如何从索引页重定向到Gatsby.JS项目中以编程方式生成的路由

基于位置选择的着陆页重定向(Cookie?)[关闭]

使用 SSL 避免登录页面重定向

yii2 - 从视图重定向到另一个视图