Страница перенаправления после входа в Yii framework - PullRequest
7 голосов
/ 07 декабря 2011

Я новичок в Yii Framework. В Yii при входе по умолчанию он перенаправляет на страницу индекса. Я хочу, чтобы при входе в Yii страница перенаправлялась на другую страницу, а не на страницу индекса. Так может кто-нибудь помочь мне в этом. Любая помощь или предложения будут весьма заметны.

[править]

как будет работать перенаправление, когда я буду использовать пользовательский модуль, поскольку после входа страница перенаправляется на страницу профиля?

Ответы [ 4 ]

13 голосов
/ 07 декабря 2011

Вы можете (и, действительно, должны, если происходит какое-либо перенаправление) указать URL-адрес для перенаправления внутри метода actionLogin вашего контроллера. После успешного входа вы увидите что-то вроде этого кода:

$this->redirect(Yii::app()->user->returnUrl);

Измените его на любой параметр, поддерживаемый методом CController::redirect, и вы можете контролировать, куда перенаправляется пользователь после входа в систему.

Кроме того, использование Yii::app()->user->returnUrl позволяет странице перенаправления вернуть пользователя обратно на URL-адрес, который он намеревался посетить, прежде чем он будет перенаправлен на страницу входа.

6 голосов
/ 12 сентября 2012

Чтобы перенаправить пользователя на страницу после входа в систему, создайте новый контроллер в 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 )

2 голосов
/ 25 сентября 2012

вы можете перенаправить на сайт / индекс после входа в систему с помощью пользовательского модуля.

'modules'=>array(
    // user extension
    'user'=>array(
               ...........
        # page after login
         //'returnUrl' => array('/user/profile'),
        'returnUrl' => array('/site/index'),
                ........
    ),
),
1 голос
/ 13 апреля 2017
$this->redirect($this->createUrl('yourcontroller/youraction'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...