在yii控制器中注册后成功的页面

在yii控制器中注册后成功的页面,yii,Yii,成功注册后,我想重定向到其他页面。如何限制直接从url访问此页面。仅在注册后显示 public function actionRegistration() { ....... if($model->save()) { $this->redirect(Yii::app()->request->baseUrl.'/site/success_registration'); } ............ } public function ac

成功注册后,我想重定向到其他页面。如何限制直接从url访问此页面。仅在注册后显示

public function actionRegistration()
{
   .......
  if($model->save())
  {
    $this->redirect(Yii::app()->request->baseUrl.'/site/success_registration'); 
  }
  ............
} 

public function actionSuccess_registration()
{
   $this->render('success_registration');
}

您可能会添加一些规则和过滤器,或者您可以在actionSuccess\u注册中检查引用者,但使视图无法从任何其他位置访问的最简单方法是从actionRegistration内部呈现success\u注册视图。因此,如果actionSuccess\u所做的只是渲染视图,那么它的注册是多余的

public function actionRegistration()
{
  .......
  if($model->save())
  {
    $this->render('success_registration');
    return;
  }
  ............
}
在yii中检查身份验证。 所以你可以这样做:

class YourController extends CController
{
    ......
    public function filters()
    {
        return array(
            'accessControl',
        );
    }

    public function accessRules()
    {
        return array(
            array('deny',
                'actions'=>array('registration'),
                'users'=>array('?'),
            ),
            array('allow',
                'actions'=>array('success_registration'),
                'users'=>array('@'),
            ),
            array('deny',
                'actions'=>array('delete'),
                'users'=>array('*'),
            ),
        );
    }
} 
用你的方法

public function actionRegistration()
{
   .......
  if($model->save())
  {
    $this->redirect($this->createUrl('site/success_registration')); 
  }
  ............
} 

如果您使用flash消息,则会更容易。这就是他们在那里的目的

public function actionRegister()
{
    if(Yii::app()->user->hasFlash('registered')) {
        $this->render('success_login');
    } else {
        // Process POST registration data here.
        // If registration was successul you do:
        Yii::app()->user->setFlash('registered',true);
        $this->refresh();

        // Otherwhise you render the registration form here
    }
}

您应该转到项目文件,转到受保护的文件夹->控制器文件夹,然后打开SiteController.php 请在SiteController.php中找到“public action actionLogin()”。 然后找到这一行:

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

在actionLogin()函数中

例如,我希望它重定向到用户控制器。我在代码末尾添加
“?r=user”

$this->redirect(Yii::app()->user->returnUrl.?r=user')