摘要:轮播图和其他模块上传 图片几乎一样,依旧是存储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
老师总结:前后端的交互是开发过程中,最常见的操作,软删除的实现手段很多,框架提供了一个规范的解决方案,你也可以自定义