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组件进行用户验证

yii YII小部件 创建登录表单表单 Login表单的更多相关文章

  1. YII自定义小部件

    案例如下 common/widgets/TopMenu.php(地址可以自定义位置,命名空间一定要对应) <?php /** * Created by PhpStorm. * Date: 201 ...

  2. dhtmlxSpreadSheet开源电子表格小部件创建教程

    dhtmlxSpreadSheet是用纯JavaScript编写的开源电子表格小部件,可让您快速在网页上添加类似于Excel的可编辑数据表.高度可定制的JavaScript电子表格组件,具有优雅的Ma ...

  3. 小程序 之登录 wx.login()

    小程序的登录关键在于使用wx.login()方法后,要到取到code值传到后台, 再用小程序平台本帐号生成的appid+addsecret+code去微信接口服务取得用户唯一标识后即可登录[注意:此步 ...

  4. yii 表单小部件使用

    首先创建model层 因为要使用表单小部件 所以要加载相应的组件 这里需要的组件有 yii\widgets\ActiveForm 和 yii\helpers\Html 接下来在model定义的clas ...

  5. YII 小部件 yii小部件查看方法 小物件做的表单

    要使用小部件,可以先到总文件去找   framework/yiilite文件里面搜索“CAtiveForm” (如果觉得小部件的radio布局有点难看,可以在外面定义,具体可以在控制器里面定义) 如下 ...

  6. YII 小部件实现的注册表

    今天来进行用户注册功能yii集成了很多验证框架,framework/validators下面,这个文件夹的最后一个文件CValidator.php 是总的验证信息,根据请求参数决定需要那种验证 如:u ...

  7. 用JS动态创建登录表单,报了个小错误

    后来发现原来是: dvObj.style.border='#Red 1px sold'; 其中的Red多谢了一个‘#’, 但是奇怪的是在chrome和firefox都备有报错,但是在ie中报错了. 各 ...

  8. Yii框架2.0的小部件

    小部件是视图里的可重用单元. 小部件是在视图中使用的,但是可能需要使用控制器传给他的模型,比如在渲染表单的时候.比如一般的时间拾取器就可以直接砸视图里加入如下代码就可以: <?php use y ...

  9. yii2.0 表单小部件常用的默认选中

    下面自己总结了一下表单小部件中经常使用到的一些默认选中 直接在视图代码里面说明啦 <?php //这个表头就不多说了 use yii\helpers\Html; use yii\widgets\ ...

随机推荐

  1. 查看MAC系统JRE和JDK版本

    经常有些软件有JRE或者JDK的版本要求,但怎么查询MAC上现在的JRE或JDK的版本呢?很简单,用这两个命令 这个是查询JRE的版本: $ java -version java version &q ...

  2. ADT在线安装

    以往安装ADT根本就不是个问题,可是现在就是个大问题了,联通的宽带网络连www.google.com.hk都打不开,你叫我们这些P民怎么活? https://dl-ssl.google.com/and ...

  3. PS基础

    1.仿制图章工具:[小  ]大   建立一个新的图层,可以进行图片某个部分的复制,完全复制之后,还可以调整大小(ctrl+t), 颜色(ctrl+u打开色相饱和度的菜单)等. 2.修复画笔工具:与仿制 ...

  4. CentOS内核升级

    CentOS 6.5自动内核升级的主要步骤: 1)内核文件下载到/usr/src/kernel/目录下: 如:2.6.32-431.5.1.el6.x86_64编译后差不多有48M大小: 2)生成的引 ...

  5. ambassador docker container linking

    http://docs.docker.com/articles/ambassador_pattern_linking/

  6. java.lang.ClassFormatError: Illegal UTF8 string in constant pool in class file Server/Request

    Linux服务器上,将本地编译好的文件上传后,Tomcat启动时报错: Exception in thread "Thread-2" java.lang.ClassFormatEr ...

  7. cgi表单的处理

    在HTML中,当客户填写了表单,并按下了发送(submit)按钮后,表单的内容被发送 到了服务器端,一般的,这时就需要有一个服务器端脚本来对表单的内容进行一些处理, 或者是把它们保存起来,或者是按内容 ...

  8. 用Java原子变量的CAS方法实现一个自旋锁

    为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/ShiJiaqi. http://www.cnblogs.com/shijiaqi1066/p/5999610. ...

  9. 关于git的cherry-pick命令

    $ git cherrypick 用一条新的指令-----拣选指令(git cherry-pick) 实现提交在新的分支上"重放", 拣选指令----git cherry-pick ...

  10. javascript for in 循环时,会取到Array.prototype

    /** *删除数组指定下标或指定对象 */ if(!Array.prototype.remove){ Array.prototype.remove = function(obj){ for(var i ...