Yii2 重定向到上一页

Yii2 redirect to previous page

现在我的应用程序正在使用 gridview 列出所有信息,它还让 pagination.when 用户单击分页编号,然后单击编辑,然后保存。它将用户重定向到查看页面。我想做的是将用户重定向到上一页(url 带分页号)。

您可以使用 Yii::$app->request->referrer 用户访问的最后一页 returns。

用法很简单:

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

您还需要考虑到 referrer 可以是 null:

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

参见 the docs

Here 它说检查 referrer 是否设置在第一位是一个好习惯。 因此,如果您使用以下代码,如果设置了引荐来源网址,您将被重定向到最后一页,或者如果之前未设置 return URL,则将重定向到您配置的 homeUrl

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

goBack() details

redirect details

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

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

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

如果你在表单中使用 Html::submitButton 并且你想被重定向到上一页,那么主要是你的模块列表我建议使用 use yii\helpers\Url;:

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

因为

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

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