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