美文网首页
tp5模型三大利器使用笔记!

tp5模型三大利器使用笔记!

作者: DragonersLi | 来源:发表于2020-04-04 15:11 被阅读0次

    模型定义

       /*
         * 搜索器
         * @desc searchFieldNameAttr
         * @access public
         * @param $query 查询对象
         * @param $value 搜索标识值
         * @param $data 所有搜索数据(可选)
         *
         */
        public function searchNameAttr($query,$value,$data){
            $query->where(['name'=>$value]);
        }
        public function searchCreateTimeAttr($query, $value, $data)
        {
            $query->whereBetweenTime('create_time', $value[0], $value[1]);
        }
        /*
         * 修改器
         * FieldName对应数据表字段field_name
         * @desc setFieldNameAttr
         * @access public
         * @param $value 设置标识值
         * @param $data 所有修改数据
         */
        protected function setNameAttr($value,$data){
            return md5($value);
        }
    
        /*
         * 获取器
         * FieldName对应数据表字段field_name
         * @desc getFieldNameAttr
         * @access public
         * @param $value 设置标识值
         * @param $data 所有修改数据
         */
        protected function getIdAttr($value,$data){
            $type = [0 => '普通', 1 => 'VIP', 2 => '黄金', 3 => '白金', 4 => '钻石'];
            return $type[$value];
        }
     
     
    

    控制器调用:

    #搜索器:
    $query = ['name', 'create_time'];
    $value = ['name'=>  'think','create_time'=>['2018-8-1','2018-8-5'],  'status'=>1 ];
    User::withSearch($query,$value)->select();
    
    
    User::withSearch(['name' => function($query,$value,$data){
        $query->where('name','like', $value . '%');
    }, 'create_time'=>function($query,$value,$data){
        $query->whereBetweenTime('create_time', $value[0], $value[1]);
    }],  
    ['name'=>   'think','create_time'=>['2018-8-1','2018-8-5'],  'status'=>1 ])->select();
    
    
    
    #修改器:(注意:insert、update无效,使用save)
    
            $user = User::get(7);
            $user->name = 'admin';#第一种写法
            $user->data('name', md5('admin')); #第二种写法
            $user->save();
    
    
    
    
    #获取器:
            $user = User::get(7);
          echo $user->id;//获取器设置的值
          echo $user->getData('id');//原始值 
          dump($user->getData());// 获取全部原始数据
    
    //动态获取,支持DB模式
    User::withAttr('name', function($value, $data) {
        return strtolower($value);
    })->select();
    

    相关文章

      网友评论

          本文标题:tp5模型三大利器使用笔记!

          本文链接:https://www.haomeiwen.com/subject/ogcfphtx.html