В рамках 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');
}
}
Пытаться:
$this->redirect("site/index");
или если вы хотите перенаправить на домашнюю страницу:
$this->redirect(Yii::app()->homeUrl);
От CWidget пытаться:
$this->owner->redirect(array("site/index"));
Прочитайте больше Вот о перенаправлении из виджета.
Поскольку вы просто пытаетесь перейти к индексу сайта, попробуйте что-то вроде этого:
$this->redirect(Yii::app()->baseUrl);
Если вы хотите перенаправить пользователя на другую страницу, отличную от домашней, попробуйте использовать:
$this->redirect(Yii::app()->createUrl('controlller/action'));
Это пригодится, когда вы попробуете переписать URL, используя правила yii url.
$this->redirect(array('site/index'));
Вы должны попробовать это, надеюсь, это поможет
$this->redirect(array('site/index'));
Вы также можете попробовать это ..
Yii::app()->getController()->redirect(array('/path/to/url'));
Удалить массив из функции перенаправления
Синтекс $this->redirect(<contoroller>/<action>)
еще попробуйте это
$this->redirect(Yii::app()->createUrl('controller/action'));
Это простой способ (поместите код перед функцией return и exit ()):
header('Location: ' . Url::toRoute('/post/index'));
exit();
return ....
Ты можешь использовать
$this->redirect(Router::url(array('controller'=>'site', 'action'=>'index')));
$this->redirect(Yii::app()->createUrl('site/index'));