Я новичок в Yii Framework. В Yii при входе по умолчанию он перенаправляется на индексную страницу. Я хочу, чтобы, когда я войду в Yii, страница будет перенаправляться на другую страницу, а не на индексную страницу. Так кто может мне помочь в этом. Любая помощь или предложения будут очень заметными.
[редактировать]
как перенаправление будет работать, когда я буду использовать пользовательский модуль, так как после входа страница перенаправляется на страницу профиля?
Вы можете (и действительно, должны, если какое-либо перенаправление будет иметь место), укажите URL-адрес для перенаправления внутри метода actionLogin
вашего контроллера. После успешного входа в систему вы увидите что-то вроде этого кода:
$this->redirect(Yii::app()->user->returnUrl);
Измените это на любой параметр, поддерживаемый методом CController::redirect
, и вы можете контролировать, куда пользователь перенаправляется после входа в систему.
В Yii::app()->user->returnUrl
использование Yii::app()->user->returnUrl
позволяет странице перенаправления возвращать пользователя обратно к URL-адресу, который они планировали посетить, прежде чем перенаправляться на страницу входа.
Чтобы перенаправить пользователя на страницу после входа в систему, создайте новый контроллер в gii для страницы, на которую будет направляться ваш пользователь после входа в систему. Я назову это приложение «здесь» контроллера. Gii автоматически создаст для вас некоторые файлы – будет /protected/models/AppController.php
В AppController.php у вас будет публичная функция (метод) по умолчанию, называемая actionIndex. Цель этого метода по умолчанию – вызвать (визуализировать) файл /protected/views/app/index.php (также созданный gii для вас). index.php – это файл, который ваши пользователи будут видеть после входа в систему. Это файл, который вы хотите изменить для создания своего приложения. Вернитесь к SiteController.php и измените аргумент redirect () в методе actionLogin ()
if(isset($_POST['LoginForm'])) { $model->attributes=$_POST['LoginForm']; // validate user input and redirect to the previous page if valid if($model->validate() && $model->login()) // since my controller is /protected/controllers/AppController.php $this->redirect(array('app/index')); }
Это должно заставить вас начать. (Это, по сути, мой пост в дискуссии на сайте yiiframework )
вы можете перенаправить на сайт / индекс после входа в систему с использованием пользовательского модуля.
'modules'=>array( // user extension 'user'=>array( ........... # page after login //'returnUrl' => array('/user/profile'), 'returnUrl' => array('/site/index'), ........ ), ),
$this->redirect($this->createUrl('yourcontroller/youraction'));