摘要: 总体上来说产品模块和新闻模块几乎相同,软删除/更新,依据id主键来进行,还有需要通过数据表中uid查询user表中的username.通过公共函数来处理,和之前一样内容的更新需要使用htmlspecialchars_decode进行转会字符.一.产品列表 和之前一样,查询所有数据,进行分页处理,传入模板,
总体上来说产品模块和新闻模块几乎相同,软删除/更新,依据id主键来进行,还有需要通过数据表中uid查询user表中的username.通过公共函数来处理,和之前一样内容的更新需要使用htmlspecialchars_decode进行转会字符.
一.产品列表
和之前一样,查询所有数据,进行分页处理,传入模板,渲染输出
模型文件:Product.php
<?php
namespace app\admin\model;
use think\Model;
use think\model\concern\SoftDelete;
class Product extends Model
{
//使用trait软删除
use SoftDelete;
//表名
protected $table = 'product';
//主键
protected $pk = 'id';
//开启自动时间戳
protected $autoWriteTimestamp = true;
//设置一下用户自定义的新增和更新时间的字段名
protected $createTime = 'create_time';
protected $updateTime = 'update_time';
//设置软删除字段
protected $defaultSoftDelete = 'delete_time';
} 控制器文件
namespace app\admin\controller;
use app\admin\common\Common;
use think\facade\Request;
use app\admin\model\Product as ProductModel;
class Product extends Common
{
public function index()
{
//每页数据
$num = 5;
//获取全部产品
$rows = ProductModel::order('id')->paginate($num);
$page = $rows->render();
//模板赋值
$this->view->assign('rows',$rows);
$this->view->assign('page',$page);
//渲染产品列表
return $this->view->fetch();
}产品图片模块没弄,下一步去弄

二.更新操作,依旧根据id传到控制器中,进行查询,将数据返回模板展示,然后进行修改,再将数据传到控制器,依据传过来的id来进行更新操作
渲染更新界面
public function edit()
{
$id = Request::param('id');
$info = ProductModel::get($id);
$this->view->assign('info',$info);
//渲染修改页面
return $this->view->fetch();
} 上传图片接口
public function upload()
{
//获取上传图片信息
$file = Request::file('img');
if(!$file){
return ['res'=>'0', 'msg'=>'没有图片上传'];
}
//执行验证
if($info = $file->validate(['ext'=>'jpg,jpeg,gif,png'])->move('upload')){
return json(['errno'=>0,'data'=>['/upload/'.$info->getSaveName()]]);
}else {
return $file->getError();
}
} 执行更新操作
public function doEdit()
{
//获取提交过来的数据
$data = Request::param();
$id = $data['id'];
//验证id,不许无条件更新
if(!$id){
return ['res'=>0,'msg'=>'非法操作'];
}
//执行更新并返回对应信息
$res = ProductModel::update($data,['id',$data['id']]);
if($res){
return ['res'=>1,'msg'=>'修改成功'];
}else{
return ['res'=>2,'msg'=>'修改失败'];
}
}
三.新增操作
渲染新增页面,将表单中的信息传到控制器中,进行新增操作,判断标题是否重复,不允许有重复的标题
public function add()
{
//添加页面
return $this->view->fetch();
}
public function doAdd()
{
//获取提交过来的数据
$data = Request::param();
$title = $data['title'];
//查询是否有重复的标题
$info = ProductModel::where('title',$title)->find();
//如果有,则报出错误信息
if($info){
return ['res'=>0,'msg'=>'标题重复'];
}
//进行新增
$res = ProductModel::create($data);
//返回对应信息
if($res){
return ['res'=>1,'msg'=>'发布成功'];
}else{
return ['res'=>2,'msg'=>'发布失败'];
}
}
四.删除操作
依旧是软删除操作,在模型中设置对应参数
//软删除操作
public function del()
{
//获取删除id
$id = Request::param('id');
//不允许无条件删除
if(!$id){
return ['res'=>2,'msg'=>'非法操作'];
}
//执行删除
$res = ProductModel::destroy($id);
//判断是否成功
if($res){
return ['res'=>1,'msg'=>'删除成功'];
}
else{
return ['res'=>0,'msg'=>'删除失败'];
}
}
批改老师:韦小宝批改时间:2018-12-24 11:46:34
老师总结:写的很不错哦!完成了这个项目后可以考虑写个自己的博客站哦!博客站和企业站相差并不大!