zoukankan      html  css  js  c++  java
  • ecmall的模型用法

    /*
    除本基类文件外,所有的模型类的类名的构造规则应该是模型名(首字母大写)+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删除分类的时候,自动删除分类下面的文章。

  • 相关阅读:
    [程序员代码面试指南]栈和队列-单调栈结构(单调栈)
    快学Scala第一部分
    Add Digits
    Nim Game
    将分布式中多台节点的日志信息集中到一个节点上
    Eclipse调试的一些小技巧
    Maven的常用命令
    Eclipse插件本地扩展安装
    Spark应用程序的运行框架
    Spark运行各个时间段的解释
  • 原文地址:https://www.cnblogs.com/linksgo2011/p/2953453.html
Copyright © 2011-2022 走看看