YII框架必须遵循其表单的创建方法
登录模型错做与数据库操作模型是一致的,不同的是不跟数据库交互
,用的是小部件,在创建表单之前,要在用户控制模块完成以下代码
protected
--models
--LoginFrom
在这个LoginFrom里面设置标签名
/**
* Declares attribute labels.
*/
public function attributeLabels()
{
return array(
'username'=>'用户名',
'password'=>'密 码',
//'rememberMe'=>'Remember me next time',
}
接下来创建登陆模型对象(controllers 控制登录模块)
$user_login=new LoginForm();
$this ->render('login',array('user_login'=>$user_login));//绿色部分和前台代码$user_login 要一致
接下来创建view视图
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
在前台登录页面可以这么写:
<?php $form=$this->beginWidget('CActiveForm'); ?>
<DIV class="to">
<SPAN class="tol"><A class="v" href="/" target=_blank></A></SPAN>
</DIV>
<DIV class="in">
<DL>
<!-- 创建标签名 -->
<DT><?php echo $form->labelEx($user_login,'username'); ?></DT>
<DD>
<!-- 创建文本输入框 -->
<?php echo $form->textField($user_login,'username',array('size'=>25,'class'=>'inputBg()'));?>
</DD>
<DD class="e"></DD>
</DL>
<DL>
<DT><?php echo $form->labelEx($user_password,'password');?></DT>
<DD>
<?php echo $form->textField($user_password,'password',array('size'=>25,'class'=>'inputBg()'));?>
</DD>
<DD class="e"></DD>
</DL>
</DIV>
<DIV class="su">
<SPAN><INPUT class="go" type=submit value=""></SPAN>
</DIV>
<?php $this->endWidget(); ?>
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
接下来创建表单数据的验证了
它有两个方法,一个是save方法,一个是validate方法
表单数据验证save()方法可以一边校验数据,校验成功可以存储数据
save() 到后边有一个环节会执行模型的rules()方法,也就校验表单
我们现在用实现登录表单的验证,可以调用validate(),这个方法校验我们输入的信息。节省了save环节,该方法执行的后面也会去执行rules方法
配置校验提示信息(在modle--->loginForm)
然后进入上面if语句的anthenticat方法里面,对用户名进行验证操作
接着在前台登录界面添加提示错误信息
<?php echo $form->error($user_login,'username')?>
<?php echo $form->error($user_login,'password'); ?>
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
用UerIdentity组件进行用户验证