перенаправление yii не работает

В рамках 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');
}
}

4

Решение

Пытаться:

$this->redirect("site/index");

или если вы хотите перенаправить на домашнюю страницу:

$this->redirect(Yii::app()->homeUrl);

От CWidget пытаться:

$this->owner->redirect(array("site/index"));

Прочитайте больше Вот о перенаправлении из виджета.

12

Другие решения

Поскольку вы просто пытаетесь перейти к индексу сайта, попробуйте что-то вроде этого:

 $this->redirect(Yii::app()->baseUrl);

Если вы хотите перенаправить пользователя на другую страницу, отличную от домашней, попробуйте использовать:

 $this->redirect(Yii::app()->createUrl('controlller/action'));

Это пригодится, когда вы попробуете переписать URL, используя правила yii url.

2

 $this->redirect(array('site/index'));
2

Вы должны попробовать это, надеюсь, это поможет

$this->redirect(array('site/index'));

Вы также можете попробовать это ..

Yii::app()->getController()->redirect(array('/path/to/url'));
1

Удалить массив из функции перенаправления

Синтекс $this->redirect(<contoroller>/<action>)

еще попробуйте это

$this->redirect(Yii::app()->createUrl('controller/action'));
0

Это простой способ (поместите код перед функцией return и exit ()):

header('Location: ' . Url::toRoute('/post/index'));
exit();
return ....
0

Ты можешь использовать

$this->redirect(Router::url(array('controller'=>'site', 'action'=>'index')));
0
$this->redirect(Yii::app()->createUrl('site/index'));
0
По вопросам рекламы [email protected]