im yiibie. что я пытаюсь сделать, это получить роль зарегистрированных пользователей и показать им контент в соответствии с их ролью. У меня есть два пользователя прямо сейчас
Администратор
Пользователь (authenticared)
Что я делаю, так это то, что когда мой администратор регистрируется через user/login
администратор перенаправляется на страницу, которая является "webapp/story"
а sidebarwidget отображается администратору, который я уже сделал, и когда пользователь (аутентифицированный) регистрируется через "user/login"
что пользователь просто перенаправляется на index.php
. после использования кода для этого, когда мой администратор регистрируется, он показывает ошибку:
«Невозможно изменить информацию заголовка – уже отправленные заголовки (вывод запущен в C: \ wamp \ www \ emergency_response \ protected \ components \ views \ admin.php: 73)"
Я использовал код, приведенный ниже, и использовал этот код в modules/user/controller/logincontroller.php
.
<?php class LoginController extends Controller { public $defaultAction = 'login'; /** * Displays the login page */ public function actionLogin() { if (Yii::app()->user->isGuest) { $model=new UserLogin; // collect user input data if(isset($_POST['UserLogin'])) { $model->attributes=$_POST['UserLogin']; // validate user input and redirect to previous page if valid if($model->validate()) { $this->lastViset(); //this is the code which i have used for the task i am doing. $role = Rights::getAssignedRoles(Yii::app() -> user -> Id); foreach ($role as $role) $role -> name; if ($role -> name == 'Admin'){ $this->widget('AdminWidget') && $this->redirect(array('story')); } else{ $this->redirect(Yii::app()->user->returnUrl); } } } // display the login form $this->render('/user/login',array('model'=>$model)); } else $this->redirect(Yii::app()->controller->module->returnUrl); } private function lastViset() { $lastVisit = User::model()->notsafe()->findByPk(Yii::app()->user->id); $lastVisit->lastvisit = time(); $lastVisit->save(); } }