2016-08-02 11:24:22 7126次浏览 5条回答 0 悬赏 20 金钱

如题,

if ($model->user_id!=$session['__id'])
{
    Yii::$app->getSession()->setFlash('error',"无法编辑他人相册");
    return $this->goBack(Yii::$app->request->getReferrer());

}

这里打印
Yii::$app->request->getReferrer()
得到的是
string(40) "http://www.yii2test.com/albums/view?id=3"

但goback给我跳转到了
http://www.yii2test.com/tool/air
这是为何?

  • 回答于 2016-08-02 11:53 举报

    试试redirect

    1 条回复
    回复于 2016-08-02 13:09 回复

    redirect可以,但是goback怎么就给我跳到那儿了呢

  • 回答于 2016-08-02 15:11 举报

    goback()是跳转回上一次访问的地址,如果传入参数则会跳转参数指定地址。

    然而楼主浏览器最终的结果并不是参数指定的地址。

    推测可能是参数指定的地址对本次跳转执行了过滤,然后重定向到楼主看到的地址了。

    楼主可以看看debug中对跳转的记录,到底有几次3xx。

    当然,你也可以勾选chrome f12的 preserve log以查看记录。

    1 条回复
    回复于 2016-08-03 10:46 回复

    我清了缓存和cookie之后,这个goback就跳到了我清了之后刚进去的那个url去了

    觉得很赞
  • 回答于 2016-08-02 18:24 举报

    先看看Yii::$app->user->returnUrl是否已经设置,
    returnUrl没有设置且goBack()中的参数也未设置则会返回到homeUrl指定的地址。
    可查阅官方文档中的这个地方,
    http://www.yiichina.com/doc/api/2.0/yii-web-controller#goBack()-detail

    觉得很赞
  • 回答于 2016-08-03 08:48 举报

    建议看看,goBack,goHome的定义,然后再看看returnUrl,就可以解决问题了

  • 回答于 2017-10-21 15:21 举报

    作为一个后来者也发现了这个问题,看了一下类参考文档,goback()要先设置一下返回地址的
    代码是这样 Yii::$app->user->setReturnUrl(Yii::$app->request->referrer);
    下面是例子,希望可以帮到其他人:

       if (!Yii::$app->user->isGuest) {                                      
           return $this->goHome();                                           
       }                                                                                               
       $model = new LoginForm();                                             
       if ($model->load(Yii::$app->request->post()) && $model->login()) {    
           return $this->goBack();                                           
       } else { 
           Yii::$app->user->setReturnUrl(Yii::$app->request->referrer);      
           return $this->render('login', [                                   
               'model' => $model                                             
           ]);                                                               
       }                                                                                                                            
    
您需要登录后才可以回答。登录 | 立即注册
hebo5485
副总裁

hebo5485

注册时间:2016-03-18
最后登录:2024-04-05
在线时长:66小时28分
  • 粉丝8
  • 金钱4600
  • 威望30
  • 积分5560

热门问题