文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>17joys用户管理功能-模型

17joys用户管理功能-模型

时间:2010-04-14  来源:17joys

http://www.17joys.com/php/cms/cms-m9-94.html17joys用户管理功能-模型

现在后台页面的搭建工作已经完成,不知道大家有没有找到满意的模板,反正我是找到了,呵呵!接下来要做的就是后台的功能了,第一个需要完成的功能就是用户管理功能。对于功能的编写说白了主要就是对数据库的操作,数据的操作无外乎增、删、改、查这四大项,在ThinkPHP中叫CURD。
【注】:CURD是一个数据库技术中的缩写词,一般的项目开发的各种参数的基本功能都是CURD。它代表创建(Create)、更新(Update)、读取(Read)和删除(Delete)操作。

这CURD操作的任务就要交给模型来完成了,在ThinkPHP中基础的模型类就是Model类,该类完成了基本的CURD、ActiveRecord模式、连贯操作和统计查询,一些高级特性被封装到另外的模型类中,例如AdvModel高级模型类完成了一些包括文本字段、只读字段、序列化字段、乐观锁、多数据库连接等模型的高级特性,ViewModel视图模型类完成了模型的视图操作,RelationModel关联模型类完成了模型的关联操作。
基础模型类Model的设计非常灵活,甚至可以无需进行任何模型定义,就可以进行相关数据表的ORM和CURD操作,只有在需要封装单独的业务逻辑的时候,模型类才是必须被定义的。

下面就上正菜,用户模型类UserModel,这个类文件放在Lib/Model目录下,命名为UserModel.class.php,说到命名就要遵循规范,ThinkPHP要求数据库的表名和模型类的命名遵循一定的规范,首先数据库的表名和字段全部采用小写形式,模型类的命名规则是除去表前缀的数据表名称,并且首字母大写,然后加上模型类的后缀定义。
例如:UserModel 表示User数据对象,由于我之前项目配置的数据库的表前缀是 joys_,所以UserModel模型其对应的数据表应该是joys_user
【注】:表设计请看17joys网站后台功能设计-阶段1

当然如果你的规则和系统的约定不符合,也可以设置Model类的tableName属性进行自定义。

下面就是我的UserModel类代码

<?php
/*
* 功能:用户模型类
* 作者:马明
* 版本:1.0
* 开发时间:2010.1
*/
 
class UserModel extends Model {
        /*
         * 表单验证
         */
        protected  $_validate = array(
        //array(验证字段,验证规则,错误提示,验证条件,附加规则,验证时间)
                array('username','require','账号名必须存在!',1,'regex',3),
                array('username','','账号名已经存在!',1,'unique',1),
                array('rpwd','pwd','两次密码不一致!',0,'confirm'),
                array('name','require','用户名称必须存在!',1),
                array('email','require','邮箱不能为空!'),
                //array('email','','邮箱已经存在!',1,'unique',3),
                array('email','checkEmail','邮箱已经存在!',1,'callback',3),
                array('active',array(0,1),'启用:1 ; 停用:0',0,'in'),
        );
 
        /*
         * 字段映射
         */
        protected $_map=array(
                //'uname'=>'username',      
                'pwd'=>'password',
        );
 
        /*
         * 自动填充
         */
        protected $_auto=array(
        //array(填充字段,填充内容,填充条件,附加规则)
                array('password','md5',1,'function'),
                array('reg_date','getDate',1,'callback'),
                array('active','1'),
        );
 
        function getDate(){
                return date('Y-m-d H:i:s');
        }
 
        function checkEmail(){
                $user=new Model('User');
                if(empty($_POST['id'])){
                        if($user->getByEmail($_POST['email'])){
                                return false;
                        }else{
                                return true;
                        }
                }else{
                        if($user->where("id!={$_POST['id']} and email='{$_POST['email']}'")->find()){
                                return false;
                        }else{
                                return true;
                        }
                }
        }
}
?>

关于这个类文件的说明,稍后我会分开给大家讲解。

作者:马明@PHP培训 修订1.0 2010-03

乐学PHP学院是国内专业的PHP培训机构,天津最好的PHP培训机构,拥有完整全面的PHP培训课程体系,使用自行开发的PHP内容管理系统作为授课案例,真实项目教学,还提供PHP教程、PHP视频、PHP人才、PHP开发等服务!

本文乐学PHP版权所有,未经批准转载必究。

排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载