您的位置:首页 > 编程语言 > PHP开发

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

2017-07-12 10:38 519 查看
   在繁忙的工作中,为了提高工作的质量和效率,针对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);
}

}

希望大家多多支持!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息