17joys用户管理功能-模型
时间:2010-04-14 来源:17joys
现在后台页面的搭建工作已经完成,不知道大家有没有找到满意的模板,反正我是找到了,呵呵!接下来要做的就是后台的功能了,第一个需要完成的功能就是用户管理功能。对于功能的编写说白了主要就是对数据库的操作,数据的操作无外乎增、删、改、查这四大项,在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版权所有,未经批准转载必究。