我们的用户控制器中有一个 actionSearchType,如下所示:
public function actionSearchType()
{
if (Yii::app()->user->isGuest == true)
$this->render('login');
else
$this->render('search_type');
}
我们的 User Controller 中的 actionLogin 如下:
public function actionLogin()
{
$model= new Users();
// if it is ajax validation request
if(isset($_POST['ajax']))
{
echo CActiveForm::validate($model);
Yii::app()->end();
}
$this->redirect(Yii::app()->user->returnUrl);
}
}
// display the login form
$this->render('login',array('model'=>$model));
}
目标是确保只有经过身份验证的用户才能执行搜索类型视图上的选项。当我运行此页面时,我收到一条错误消息,指出Undefined variable: model
.
登录视图的片段如下:
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'login-form',
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
),
)); ?>
<p class="note">Fields with <span class="required">*</span> are required.</p>
<div class="row">
<?php echo $form->labelEx($model,'username'); ?>
<?php echo $form->textField($model,'username'); ?>
<?php echo $form->error($model,'username'); ?>
</div>
必须采取哪些步骤来纠正上述错误并正确检查以确保我们拥有经过身份验证的用户?
更新 我更改了 actionSearchType 以呈现以下登录小部件:
public function actionSearchType()
{
if (Yii::app()->user->isGuest)
$this->widget('ext.LoginWidget');
else
$this->render('search_type');
}
这确实解决了最初看到的错误。一个新问题是登录小部件在呈现时没有样式。我应该用适当的样式表类来回显我的标签,还是有更优雅的方法呢?