• tp5.1 模型集成


    基类

    在application目录的model中新建Base基类

    直接上代码

    <?php
    /**
     * Created by PhpStorm.
     * User: Zhangyongfeng
     * Date: 2020/12/1
     * Time: 11:32
     *
     * ━━━━━━━━━神兽出没━━━━━━━━━
     *
     *        ┏┓   ┏┓+ +
     *       ┏┛┻━━━┛┻┓ + +
     *       ┃       ┃  
     *       ┃   ━   ┃ ++ + + +
     *       ████━████ ┃+
     *       ┃       ┃ +
     *       ┃   ┻   ┃
     *       ┃       ┃ + +
     *       ┗━┓   ┏━┛
     *         ┃   ┃           
     *         ┃   ┃ + + + +
     *         ┃   ┃    Code is far away from bug with the animal protecting       
     *         ┃   ┃ +     神兽保佑,代码无bug  
     *         ┃   ┃
     *         ┃   ┃  +         
     *         ┃    ┗━━━┓ + +
     *         ┃        ┣┓
     *         ┃        ┏┛
     *         ┗┓┓┏━┳┓┏┛ + + + +
     *          ┃┫┫ ┃┫┫
     *          ┗┻┛ ┗┻┛+ + + +
     *
     * ━━━━━━━━━感觉萌萌哒━━━━━━━━━
     */
    
    namespace appasemodel;
    
    
    use thinkModel;
    
    abstract class Base extends Model
    {
    
        private $primary_key;                           // 主键
        protected $order = ['create_time' => 'desc'];   // 默认排序
        protected $code = 4004;
    
        static public function showReturnCode($code = '', $data = [], $msg = ''){
            return appasecontrollerBase::showReturnCode($code, $data, $msg);
        }
    
        static public function showReturnCodeWithOutData($code = '', $msg = '')
        {
            return appasecontrollerBase::showReturnCode($code, [], $msg);
        }
    
        protected function initialize()
        {
            parent::initialize(); // TODO: Change the autogenerated stub
            $this->primary_key = $this->getPk();
        }
    
        /**
         * 查询数据表格内容
         * Power: ZYF
         * Email:1322816443@qq.com
         * @param array $where 查询条件 (二维数组)
         * @param number $pageSize 限制一页多少条数据
         * @param array $query ['limit' => 10, 'page' => 1] page请求的页数 limit 限制从第几条开始查
         * @param array $order 排序
         * @return array
         * */
        public function baseGetTableList($where, $pageSize, $query, $order = [])
        {
            if(empty($order)){ $order = $this->order; }
            $data = $this->where($where)
                ->order($order)
                ->paginate($pageSize,false,['query' => $query])->toArray();
            return $data;
        }
    
        /**
         * 查询带分页数据
         * Power: ZYF
         * Email:1322816443@qq.com
         * @param array $where 查询条件 (二维数组)
         * @param number $pageNum 限制一页多少条数据
         * @param array $query ['limit' => 10, 'page' => 1] page请求的页数 limit 限制从第几条开始查
         * @param array $order 排序
         * @return array
         * */
        public function getPaginate($where, $pageNum, $query, $order = [])
        {
            if(empty($order)){ $order = $this->order; }
            return $this->where($where)
                ->order($order)
                ->paginate($pageNum,false,['query' => $query]);
        }
    
        /**
         * 获取数据条数
         * Power: ZYF
         * Email:1322816443@qq.com
         * @param array $where 查询条件 (二维数组)
         * @param string $field 限制字段,默认为所有
         * @return int|string
         * */
        public function getCount($where = [], $field = "*")
        {
            return $this->where($where)->count($field);
        }
    
        /**
         * 查询所有数据
         * Power: ZYF
         * Email:1322816443@qq.com
         * @param array $where 查询条件 (二维数组)
         * @param string $field 限制字段,默认为所有
         * @param array $order 排序
         * @return array
         * */
        public function getAll($where = [], $field = "*", $order = [])
        {
            if(empty($order)){ $order = $this->order; }
            return $this->where($where)->order($order)->field($field)->all();
        }
    
        /**
         * 查询所有数据转为数组
         * Power: ZYF
         * Email:1322816443@qq.com
         * @param array $where 查询条件 (二维数组)
         * @param array $order 排序
         * @return array
         * */
        public function getArr($where = [], $order = [])
        {
            if(empty($order)){ $order = $this->order; }
            return $this->where($where)->order($order)->toArray();
        }
    
        /**
         * 根据条件查询一条数据
         * Power: ZYF
         * Email:1322816443@qq.com
         * @param array $where 查询条件 (二维数组)
         * @return array|string
         * */
        public function getOneWhere($where = [])
        {
            if(empty($where)){ return self::showReturnCode(1003); }
            return $this->where($where)->findOrEmpty();
        }
    
        /**
         * 根据主键查询一条数据
         * Power: ZYF
         * Email:1322816443@qq.com
         * @param string|int $primary 主键
         * @return array|string
         * */
        public function getOnePrimary($primary)
        {
            if(!is_numeric($primary)){ return self::showReturnCode(1003); }
            return $this->find($primary);
        }
    
        /**
         * 添加数据
         * Power: ZYF
         * Email:1322816443@qq.com
         * @param array $data 数据
         * @param boolean $allow 是否过滤字段
         * @return array|string
         * */
        public function add($data, $allow = true)
        {
            $code = 1001;
            // 如果是一维数组
            if(count($data) == count($data, 1)){
                $primary_key = $this->primary_key;
                $this->allowField($allow)->save($data);
                $data['id'] = $this->$primary_key;
            }else{
                $data = $this->allowField($allow)->saveAll($data);
            }
            if(!$data){ $code = 9002; }
            return self::showReturnCode($code, $data);
        }
    
        /**
         * 修改数据
         * Power: ZYF
         * Email:1322816443@qq.com
         * @param array $data 数据
         * @param boolean $allow 是否过滤字段
         * @return array
         * */
        public function edit($data, $allow = true)
        {
            $code = 1001;
            $data = $this->allowField($allow)->save($data, [$this->primary_key => $data[$this->primary_key]]);
            if(!$data){ $code = 9004; }
            return self::showReturnCode($code, $data);
        }
    
        /**
         * 删除数据
         * Power: ZYF
         * Email:1322816443@qq.com
         * @param string|int $primary
         * @return array
         * */
        public function del($primary)
        {
            $code = 1001;
            $data = $this->getOnePrimary($primary);
            if($data){ $this->destroy($primary); }else{ $code = 1010; }
            return self::showReturnCode($code, $data);
        }
    
    }

    使用

    model目录需要创建对应数据库表名的class文件,并继承Base基类

     添加

    $param = request()->param();    
    $bannerModel = new Banner();
    $res = $bannerModel->add($this->param);

    删除

    $id = request()->param("id");
    $bannerModel = new Banner();
    $bannerModel->del($id);

    修改

    $param = request()->param();
    $bannerModel = new Banner();
    $bannerModel->edit($param);

    查询分页数据

    $uactionModel = new Uaction();
    $data = $uactionModel->getPaginate([['level', '=', '1']], 1, request()->param(), 'path');
  • 相关阅读:
    object对象
    addEventListener 和 attachEvent
    BOM常用对象
    动态原型
    鼠标移动图片放大效果(兼容IE8、多图)
    伪元素:before和:after
    javascript/js 判断是否安装flash player插件,提示安装方法。
    Form表单值转换为[{name:'',value}]键值对
    [转][网站、云服务与虚拟机]弄清负载均衡的机制
    C# Lazy Initialization
  • 原文地址:https://www.cnblogs.com/zyfeng/p/14073264.html
Copyright © 2020-2023  润新知