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

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

【问题讨论】:

    标签: yii2


    【解决方案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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-04-30
          • 1970-01-01
          • 1970-01-01
          • 2021-07-23
          • 1970-01-01
          相关资源
          最近更新 更多