新建了一个模块,但在init中使用
return Yii::$app->response->redirect(['site/login']);
不能正常工作,然后打印下
var_dump(Yii::$app->response->redirect(['site/login']));
居然有结果,response相关对象,也就是说有返回值。
在文档种有说到:
除了动作方法外,可直接调用yii\web\Response::redirect() 再调用 yii\web\Response::send() 方法来确保没有其他内容追加到响应中。
但是使用
return Yii::$app->response->redirect(['site/login'], 301)->send();
依然无法跳转,看了网上有说到一句话:return只能在action终止代码,是因为在init()里仅仅是代码的执行,return只是代码返回。
所以我去去掉return,在下面加上exit,就正常跳转了。
也可以用
Yii::$app->end();
结束代码执行,也可以正常跳转。