在Yii框架中登录后重定向页面

时间:2011-12-07 04:36:26

标签: php yii

我是Yii Framework的新手。在Yii中,当您默认登录时,它会重定向到索引页面。我希望当我登录Yii时,页面将重定向到另一个页面,而不是索引页面。所以任何人都可以帮助我。任何帮助或建议都会非常值得注意。

[编辑]

当我使用用户模块时,重定向将如何工作,因为登录后页面被重定向到个人资料页面?

4 个答案:

答案 0 :(得分:13)

您可以(实际上,如果要进行任何重定向,必须)指定要重定向到控制器的actionLogin方法内部的URL。成功登录后,您将看到类似以下代码:

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

将此更改为CController::redirect方法支持的任何参数,您可以控制用户在登录后重定向的位置。

另外,使用Yii::app()->user->returnUrl可以使重定向页面在重定向到登录页面之前将用户返回到他们打算访问的URL。

答案 1 :(得分:6)

要在登录后将用户重定向到某个页面,请在gii中为用户登录后指向的页面创建一个新控制器。我将在此处调用此控制器的“app”。 Gii会自动为你创建一些文件 - 一个是/protected/models/AppController.php

在AppController.php中,您将拥有一个名为actionIndex的默认公共函数(方法)。此默认方法的目的是调用(呈现)/protected/views/app/index.php文件(也由gii为您创建)。 index.php是用户登录后将看到的文件。这是您要修改以构建应用程序的文件。返回SiteController.php并在actionLogin()方法中更改redirect()的参数

 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'));
            }

这应该让你开始。 (这基本上是我在讨论中的帖子 the yiiframework site

答案 2 :(得分:2)

使用用户模块登录后,您可以重定向到站点/索引。

'modules'=>array(
    // user extension
    'user'=>array(
               ...........
        # page after login
         //'returnUrl' => array('/user/profile'),
        'returnUrl' => array('/site/index'),
                ........
    ),
),

答案 3 :(得分:1)

$this->redirect($this->createUrl('yourcontroller/youraction'));