在beforeAction里redirect无效,Yii2.0.8

时间:2021-07-29 19:39:51

我是在官方GitHub上得到回答,试了一下,确实解决问题了。
之前的问题描述:

  1. 之前是2.0.3,然后用composer直接升级到2.0.8,就不正常了,以为是我代码的问题,于是再次尝试
  2. 用composer下载了yii-advance-2.0.8 ,在beforeAction里跳转还是不行,于是上论坛问问

放在普通的action里就没有问题,但是放在beforeAction里就是不跳转,相当于返回的是true,直接略过。

不跳转代码:

return $this->redirect('http://www.yiichina.com/');

跳转代码:

return $this->redirect('http://www.yiichina.com/')->send();

也就是在redirect()后面加个send()的方法就行了,我看了Yii2的代码更新,redirect所属的response类没有变化太多,应该是Controller的运行机制里的beforeAction有变化了导致的。