在Yii框架中$this->redirect
功能不起作用。
class TplUserNavigation extends CWidget{
public function run()
{
if(isset(Yii::app()->user->id) && Yii::app()->user->getState('userType') == 'User'){
$users = Users::model()->findByAttributes(array('id'=>Yii::app()->user->id));
$this->render('webroot.themes.'.Yii::app()->theme->name.'.views.layouts.tpl_navigation', array('users'=>$users));
}else{
$this->redirect('site/index');
}
}
答案 0 :(得分:12)
尝试:
$this->redirect("site/index");
或者如果您想重定向到主页:
$this->redirect(Yii::app()->homeUrl);
从 CWidget 尝试:
$this->owner->redirect(array("site/index"));
阅读更多关于从小部件重定向的here。
答案 1 :(得分:2)
由于您只是想尝试访问网站的索引,请尝试以下方法:
$this->redirect(Yii::app()->baseUrl);
如果您想将用户重定向到主页以外的其他页面,请尝试使用:
$this->redirect(Yii::app()->createUrl('controlller/action'));
当您尝试使用yii url规则重写URL时,这将非常方便。
答案 2 :(得分:2)
$this->redirect(array('site/index'));
答案 3 :(得分:1)
你应该试试这个,希望它有帮助
$this->redirect(array('site/index'));
你也可以试试这个......
Yii::app()->getController()->redirect(array('/path/to/url'));
答案 4 :(得分:0)
从重定向功能中删除数组
Syntex $this->redirect(<contoroller>/<action>)
否则试试这个
$this->redirect(Yii::app()->createUrl('controller/action'));
答案 5 :(得分:0)
这是一种简单的方法(在返回函数和exit()之前放置代码):
header('Location: ' . Url::toRoute('/post/index'));
exit();
return ....
答案 6 :(得分:0)
您可以使用
$this->redirect(Router::url(array('controller'=>'site', 'action'=>'index')));
答案 7 :(得分:0)
$this->redirect(Yii::app()->createUrl('site/index'));
答案 8 :(得分:0)
您可以这样使用:
$这 - &GT;重定向(阵列( 'ACTION_NAME'));
示例:$ this-&gt; redirect(array('view'));
答案 9 :(得分:0)
试试这个: $这 - &GT;重定向(阵列( '' 网站/索引'));
答案 10 :(得分:0)
您还可以使用以下方法重定向 Yii 。
Yii::app()->getController()->redirect(array('/path/to/url'));
答案 11 :(得分:0)
然后是Yii 1:
e.g。
$this->redirect(['route_to_action,GET_PARAMETERS]);
阅读手册: http://www.yiiframework.com/doc/api/1.1/CController#redirect-detail
答案 12 :(得分:0)
你不能使用:
$this->redirect
从小部件导致在这种情况下$ this用于当前小部件,小部件没有重定向方法,而不是控制器。你需要的是Yii :: app() - &gt;控制器,它将从Yii的任何地方获得活动的控制器实例,如:
Yii::app()->controller->redirect('site/index');
答案 13 :(得分:0)
在您的情况下,$this
是CWidget,而不是CController。 CWidget没有redirect
方法。
其次,$this->createUrl
将创建一个URL相对cu当前控制器($this->owner
)。
使用Yii::app()->createUrl('/site/index')
。
请注意/
之前的site
前导createUrl
相对于baseUrl
,而不是当前控制器。
答案 14 :(得分:-1)
可能是这样(取决于你的项目),你必须使用:
来自控制器的 Yii::$app->redirect('site/index');
。
答案 15 :(得分:-1)
1)随处重定向
Yii::app()->request->redirect(Yii::app()->createAbsoluteUrl("controller/action"));
2)控制器之间的重定向
$this->redirect(array("controller/action"));