TP3.2 简易封装增、删、改、查、上传、分页、操作日志

本文分享了作者在使用TP3.2框架时自行封装的一些实用方法,包括增删改查、文件上传及处理、分页等功能,旨在帮助开发者提高工作效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   在繁忙的工作中,为了提高工作的质量和效率,针对TP3.2框架我自己封装了一些方法,分享给大家!!!

<?php
class blog
{

   /*
    *  添加
    *  $tableName 表名
    *  $data 数据
    */
    public function add($tableName,$data)
    {
        return $res=M($tableName)->add($data);
    }

   /*
    *  删除
    *  $tableName  表名
    *  $where
    */
    public function del($tableName,$where)
    {
        return $res=M($tableName)->where($where)->delete();
    }
   /*
    *  添加/修改
    *  $tablename表名
    *  $id 区分添加/修改
    *  $where 条件
    *  $data 数据
    */
    public function addSave($tableName,$id,$where,$data)
    {
        $con = M($tableName);
        if($id==''){
            //入库
            $res = $con->add($data);
            if($res){
                $arr=array('status'=>$res,'data'=>"添加成功!");
            }else{
                $arr=array('status'=>0,'data'=>"添加失败!");
            }
            return $arr;
        }else{
            //修改
            $result=$con->where($where)->setField($data);
            if($result===false){
                $arr=array('status'=>2,'data'=>"修改失败");
            }
            else{
                $arr=array('status'=>3,'data'=>"修改成功");
            }
            return $arr;
        }
    }

    /*
     *  多条查询
     *  $name 表名
     *  $field 查询字段
     *  $where1 查询条件
     *  $order 排序(默认为asc)
     *  $limit 查询条数
     */
    public function manySelect($tableName,$field=true,$where1,$order,$limit)
    {
        $Model = M($tableName); // 实例化User对象
        $where=empty($where1)?'is_show=1':$where1; //添加自己的条件
        $result=$Model->where($where)
            ->field($field)
            ->order($order)
            ->limit($limit)
            ->select();
        return $result;
    }

    /*
     *  select 两表联查
     *  $tableName 主表名
     *  $sql 关联sql
     *  $where 查询条件
     *  $order 排序(默认为asc)
     *  $limit 查询条数
     */
    public function jionSelect($tableName,$sql,$where,$field,$order,$limit)
    {
        $Model = M($tableName);
        $result = $Model->join($sql)
            ->where($where)
            ->field($field)
            ->order($order)
            ->limit($limit)
            ->select();
        return  $result;
    }

   /*
    * find 两表单查
    *  $tableName 主表名
    *  $sql 关联sql
    *  $where 查询条件
    *  $field 字段
    */
    public function jionFind($tableName,$sql,$where,$field=true){
        $User=M($tableName);
        $result=$User->join($sql)
            ->field($field)
            ->where($where)
            ->find();
        return $result;
    }

    /*
    *  文件上传
    *  $names 添加新的文件夹
    *  $filename 上传的字段
    */
    public function fileUpload($names,$filename){

        $upload = new \Think\Upload();// 实例化上传类
        $upload->maxSize = 1000000;// 设置附件上传大小 3M
        $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
        $upload->rootPath = './';
        $upload->savePath = '/Public/'.$names.'/'; // 设置附件上传目录    // 上传文件
        $info = $upload->upload($_FILES);
        // print_r($info);die;
        if (!$info) {// 上传错误提示错误信息
            $error=$upload->getError();
            return $data=array("msg"=>"0","error"=>$error);
        } else {
            $path ='Uploads'. $info[$filename]['savepath'] . $info[$filename]['savename'];
            return $data=array("msg"=>"1","success"=>$path);
        }
    }
    
    /*
     *  缩率图
     *  $img 图片
     *  $filename 新文件夹名
     */
    public function thumbnail($img,$filename){
        $image = new \Think\Image();
        $image->open($img);// 按照原图的比例生成一个最大为150*150的缩略图并保存为thumb.jpg
        $img_name=rand(1111,9999).time();
        $rootPath = '.';
        is_dir('./Uploads/Public/thumbnail/'.$filename.'/') or mkdir('./Uploads/Public/thumbnail/'.$filename.'/',0777,true);
        $str='/Uploads/Public/thumbnail/'.$filename.'/'.$img_name.'.jpg';
        $image->thumb(70,70,\Think\Image::IMAGE_THUMB_SCALE)->save($rootPath.$str);
        return $str;
    }

    /*
     *  分页
     *  $tableName 表名
     *  $where     查询条件
     *  $$pagesize 每页条数
     *  $id 排序条件 $sort asc|desc
     */
    public function Pages($tableName,$where,$pagesize,$id,$sort="desc",$field=true,$jion=flase,$sql){
        $m=M($tableName);
        // $order=array($id=>$id,$sort=>$sort);
        $p=$this->getpage($m,$where,$pagesize,$jion=flase,$sql);
        if($jion){
            $list=$m->join($sql)->field($field)->where($where)->order($id ." ". $sort)->select();
        }else{
            $list=$m->field($field)->where($where)->order($id ." ". $sort)->select();
        }
        $page=$p->show();
        return $res=array("list"=>$list,"page"=>$page);

    }

    /*定制分页样式*/
    function getpage(&$m,$where,$pagesize=10,$jion=flase,$sql){
        $m1=clone $m;//浅复制一个模型
        if($jion){
            $count = $m->join($sql)->where($where)->count();//连惯操作后会对join等操作进行重置
        }else{
            $count = $m->where($where)->count();//连惯操作后会对join等操作进行重置
        }
        $m=$m1;//为保持在为定的连惯操作,浅复制一个模型
        $p=new \Think\Page($count,$pagesize);
        $p->lastSuffix=false;
        $p->setConfig('header','<button type="button" class="btn btn btn-default">共<b>%TOTAL_ROW%</b>条记录  每页<b>'.$pagesize.'</b>条  第<b>%NOW_PAGE%</b>页/共<b>%TOTAL_PAGE%</b>页</button>');
        $p->setConfig('prev','<button type="button" class="btn btn btn-default">上一页</button>');
        $p->setConfig('next','<button type="button" class="btn btn btn-default">下一页</button>');
        $p->setConfig('last','<button type="button" class="btn btn btn-default">末页</button>');
        $p->setConfig('first','<button type="button" class="btn btn btn-default">首页</button>');
        $p->setConfig('theme','%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%');
        $p->parameter=I('get.');
        $m->limit($p->firstRow,$p->listRows);
        return $p;
    }

   /*
    *  操作日志
    *  $userName 用户名
    */
    public function actionLog($userName){
        $time=date('Y-m-d H:i:s');
        $action=__ACTION__;
        $year=date('Y');
        $mouth=date('m');
        $path='./Public/Log/'.$year; //日志文件夹
        is_dir($path)or mkdir($path,077,true);
        $file=$path.'/'.$mouth.'.text';
        $con=file_get_contents($file,true);
        $data=$con.'['.$userName.']'.$time.''.$action."\n";
        file_put_contents($file,$data);
    }

    }

希望大家多多支持!!!


引用\[1\]:LayTab类是一个用于将数据转换成layui需要的数据形式的工具类。它包含了一些属性和方法,用于设置数据的格式和内容。\[1\]引用\[2\]:在具体功能的实现中,页面主要是对所有的信息进行询,并将其显示出来。利用layui的数据表格来将数据显示在前端的页面上。首先需要在自己的jsp页面上复制layui官网上提供的数据表格代码,并进行相应的修。\[2\]引用\[3\]:页面主要实现了询所有、添加书籍、修书籍、除书籍、书籍的上下架和模糊搜索等功能。具体流程如下:首先询数据库中的数据表信息,并将其显示在页面中;然后通过点击添加按钮,弹出层显示添加书籍的表单;接着通过点击修按钮,弹出层显示修书籍的表单;再通过点击除按钮,除书籍;还可以对书籍进行上下架操作;最后可以进行模糊搜索。\[3\] 根据你的问题,TP5+layui增删改查的实现可以参考以下步骤: 1. 首先需要在TP5中配置数据库连接和相关的模型(Model)。 2. 在控制器(Controller)中编相应的方法,用于处理增删改查的请求。 3. 在视图(View)中使用layui的数据表格来显示数据,并添加相应的按钮和表单。 4. 在前端页面中,通过ajax请求将数据发送到后端进行处理,并将结果显示在页面上。 5. 根据需要,可以使用TP5的验证器(Validator)来对用户输入的数据进行验证。 6. 在控制器中根据请求的类型(增删改查)来执行相应的操作,并返回相应的结果。 通过以上步骤,你可以实现TP5+layui的增删改查功能。具体的代码实现可以根据你的需求进行相应的调整和修。 #### 引用[.reference_title] - *1* *2* *3* [layui实现增删改查——图书管理](https://blog.csdn.net/weixin_42381196/article/details/118058698)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值