摘要:轮播图和其他模块上传 图片几乎一样,依旧是存储uid利用公共函数来转换模型文件,依旧软删除,只不过没开启自动时间戳<?php namespace app\admin\model; use think\Model; use think\model\concern\SoftDelete; class Slide extends Mod
轮播图和其他模块上传 图片几乎一样,依旧是存储uid利用公共函数来转换
模型文件,依旧软删除,只不过没开启自动时间戳
<?php namespace app\admin\model; use think\Model; use think\model\concern\SoftDelete; class Slide extends Model { //使用软删除 use SoftDelete; //主键 protected $pk = "id"; //表名 protected $table = "slide"; //软删除字段 protected $defaultSoftDelete = "delete_time"; }
列表控制器
namespace app\admin\controller; use app\admin\common\Common; use think\facade\Request; use think\facade\Session; use app\admin\model\Slide as SlideModel; class Slide extends Common { public function index() { //查询操作 $slides = SlideModel::order('id')->paginate(4); $page = $slides->render(); //模板赋值 $this->view->assign('slides',$slides); $this->view->assign('page',$page); //渲染模板 return $this->view->fetch(); }
添加操作,uid为session中存储的id,create_time为time()取得值(这次没开启自动时间戳功能)
public function add() { //渲染模板 return $this->view->fetch(); } public function upload() { //获取上传图片信息 $file = Request::file('file'); if(!$file){ return ['res'=>0, 'msg'=>'没有上传文件']; } //验证图片并移动到指定目录 if($info = $file->validate(['ext'=>'jpg,jpeg,gif,png','size'=>2000000])->move('upload')){ //拼接图片路径 $fileName = '/upload/'.$info->getSaveName(); return json([1,'上传成功','data'=>$fileName]); }else{ //返回错误信息 return $file->getError(); } } public function doAdd() { //获取提交数据 $data = Request::param(); if($data == ''){ return ['res'=>0, 'msg'=>'数据为空']; } //加入添加时间 $data['create_time'] = time(); //加入uid $data['uid'] = Session::get('id'); $res = SlideModel::create($data); if($res){ return ['res'=>1, 'msg'=>'添加成功']; }else{ return ['res'=>2, 'msg'=>'添加失败']; } }
删除操作,依旧软删除
public function del() { //获取需要删除的id $id = Request::param('id'); //判断id是否为空 if($id == ''){ return ['res'=>0, 'msg'=>'非法操作']; } $res = SlideModel::destroy($id); if($res){ return ['res'=>1, 'msg'=>'删除成功']; }else{ return ['res'=>2, 'msg'=>'删除失败']; } }
批改老师:天蓬老师批改时间:2018-12-25 11:24:22
老师总结:前后端的交互是开发过程中,最常见的操作,软删除的实现手段很多,框架提供了一个规范的解决方案,你也可以自定义