/* 除本基类文件外,所有的模型类的类名的构造规则应该是模型名(首字母大写)+model组成,文件名必须是模型名+.model组成 如有一个用户模型,模型名为user,则其文件名应为user.model.php,类名为UserModel 验证规则和默认值 $required = (isset($_v['required']) && $_v['required']) ? true : false; $type = isset($this->_autov[$_k]['type']) ? $this->_autov[$_k]['type'] : 'string'; $min = isset($this->_autov[$_k]['min']) ? $this->_autov[$_k]['min'] : 0; $max = isset($this->_autov[$_k]['max']) ? $this->_autov[$_k]['max'] : 0; $filter = isset($this->_autov[$_k]['filter']) ? $this->_autov[$_k]['filter'] : ''; //过滤器支持多个,使用“,”隔开 $valid= isset($this->_autov[$_k]['valid']) ? $this->_autov[$_k]['valid'] : ''; //自定义验证规则 $reg = isset($this->_autov[$_k]['reg']) ? $this->_autov[$_k]['reg'] : ''; $default = isset($this->_autov[$_k]['default']) ? $this->_autov[$_k]['default'] : ''; find()方法的参数 $arr = array( 'include' => array(), //这个不知道是做什么的,有待研究 'join'=> '', //left join 多个时使用","隔开 'conditions' => '', //where 条件,如果是数字就当做主键的值,如果是字符串就是SQL,如果是数组就被当做IN子句来使用即可,如果需要使用子查询,就自己写SQL吧、 'order' => '', 'fields' => '', //字段 'limit' => '', 'count' => false, 'index_key' => $this->prikey, ); 关联模型的关系配置笔记 1、如果有belang_to 和 多对多的关系需要设置反向关系 2、依赖的设置使用在模型的数据删除上,如果数据被其他数据依赖,数据删除后,依赖也应该删除的 添加数据每条记录必须为一个数组 一个data的例子 $data = array( array( 'title' => '这是一个例子!', 'code'=>'test', 'cate_id'=> '0' ), array( 'title' => '这又是一个例子!', 'code'=>'test', 'cate_id'=> '0' ) ); */
自己配置模型的注意事项:
1、成员初始化,这几个变量是必须要设定的
var $table = 'article'; 定义表名 var $prikey = 'article_id'; //定义主要键 var $_name = 'article'; //定义模型名称
2、初始化自动验证,规则如上面所示
/* 添加编辑时自动验证 */ var $_autov = array( 'title' => array( 'required' => true, //必填 'min' => 1, //最短1个字符 'max' => 100, //最长100个字符 'filter' => 'trim', ), 'sort_order' => array( 'filter' => 'intval', ), 'cate_id' => array( 'min' => 1, 'required' => true, //必填 ), 'link' => array( 'filter' => 'trim', 'max' => 255, //最长100个字符 ), );
3、关系的规则
var $_relation = array( // 一篇文章只能属于一个店铺 'belongs_to_store' => array( 'model' => 'store', 'type' => BELONGS_TO, 'foreign_key' => 'store_id', 'reverse' => 'has_article', ), // 一篇文章只能属于一个文章分类 'belongs_to_acategory' => array( 'model' => 'acategory', 'type' => BELONGS_TO, 'foreign_key' => 'cate_id', 'reverse' => 'has_article', //对应acategory ), //一个文章对应多个上传文件 'has_uploadedfile' => array( 'model' => 'uploadedfile', 'type' => HAS_MANY, 'foreign_key' => 'item_id', 'ext_limit' => array('belong' => BELONG_ARTICLE), 'dependent' => true ), );
关系模型需要注意的几个地方就是:
1、关系采用链接方式全部都是使用左联结的方式处理的。
2、属于关系和多对多关系必须指明反响关系
3、has_one和has_many关系后面可以使用关系dependent,用于删除数据时,自动删除依赖,比如文章分类拥有多个文章,依赖关系配置为 true删除分类的时候,自动删除分类下面的文章。