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. Github 上的 iOS 开源项目

    在 Github 上 Star 太多了,有时候很难找到自己想要的开源库,所以在此记录下来.便于自己开发使用,也顺便分享给大家. 动画 awesome-ios-animation收集了iOS平台下比较主 ...

  2. iOS开发之静态库.a的制作教程

    第一种方法:直接新建一个工程. 1.新建项目-> 选择 “Cocoa Touch Static Library” 2.添加库需要包含的源代码,将你工程里的代码添加到打静态库工程里: 3.配置一下 ...

  3. Porsche Piwis Tester II “No VCI has been detected”,how to do?

    Hi,Joy, I am sorry that my Porsche Piwis Tester II from your shop said “No VCI has been detected” wh ...

  4. Unix网络编程(3)——C/S模型几种情况

    UNP第五章描述了在客户端和服务器连接建立之后会出现的几种情况,并给出了解决方案,做一个简单的总结. 先给出这个简单的回射C/S程序的模型如下图.   1.客户端和服务器正常终止连接 客户端从标准输入 ...

  5. mfc简易加法

    利用vs2013只做一个只有加法的计算器: 一.新建项目,然后如下图所示,进行选择,并创建. 二.下一步. 三.选择基于对话框,之后直接点完成 四.在整个编译器的最左边找到工具箱,并点击. /** 为 ...

  6. tab选项卡

    1 <!doctype html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.or ...

  7. hadoop的相关资料链接

    hadoop的资料整理博客 http://www.itpub.net/thread-1588509-1-1.html

  8. 设置apt-get

    1.配置apt-get源 cp /etc/apt/sources.list /etc/apt/sources.listbak #备份原有配置文件 nano /etc/apt/sources.list ...

  9. npm更换淘宝镜像

    镜像使用方法(三种办法任意一种都能解决问题,建议使用第三种,将配置写死,下次用的时候配置还在): 1.通过config命令 npm config set registry https://regist ...

  10. 汉诺塔的问题:4个柱子,如果塔的个数变位a,b,c,d四个,现要将n个圆盘从a全部移到d,移动规则不变

    四柱汉诺塔问题的求解程序.解题思路:如a,b,c,d四柱. 要把a柱第n个盘移到目标柱子(d柱),先把上层 分两为两部份,上半部份移到b柱,下半部分移到c柱,再把第n盘移到 目标柱子,然后,c柱盘子再 ...