17joys用户管理功能-模型

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属性进行自定义。

17joys的用户模型类

下面就是我的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版权所有,未经批准转载必究。

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23714519/viewspace-1032848/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23714519/viewspace-1032848/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值