企业站点-产品模块的实现

原创 2019-04-12 15:08:31 302
摘要:<?php/** * Created by PhpStorm. * User: Administrator * Date: 2018/7/23 * Time: 10:44 */namespace app\admin\controller;use app\admin\controller\Common;use app\admin\model\ProductModel;use app\admin

<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2018/7/23
* Time: 10:44
*/

namespace app\admin\controller;

use app\admin\controller\Common;
use app\admin\model\ProductModel;
use app\admin\model\SortModel;
use think\facade\Request;
use think\facade\Session;

class Product extends Common
{
   public function index()
   {
       // 实例化模型
       $product = new ProductModel();
       // 查询数据并按照id进行排序每页八条数据
       $products = $product->order('id', 'desc')->paginate(8);
       // 将数据赋值给模板
       $this->view->products = $products;
       // 渲染产品列表
       return $this->fetch();
   }

   public function add()
   {
       // 实例化并查询分类
       $sorts = SortModel::all();
       // 将数据赋值到模板
       $this->view->sorts = $sorts;
       //渲染产品添加界面
       return $this->fetch();
   }

   public function upload()
   {
       // 获取上传图片信息
       $file = Request::file('img');
       // 验证图片信息并移动到指定目录
       if ($info = $file->validate(['ext' => 'jpg,jpeg,png,gif'])->move('upload')) {
           // 返回成功的提示信息
           return json(['errno' => 0, 'data' => ['/upload/' . $info->getSaveName()]]);
       } else {
           // 返回失败的提示信息
           return $file->getError();
       }
   }


   public function DoAdd()
   {
       // 获取提交出来的数据
       $data = Request::param();
       // 将产品名独立出来
       $title = $data['title'];
       // 利用产品名作为查询条件查询对应的数据
       $info = ProductModel::where('title', $title)->find();
       // 判断是否查询到相同的产品名称
       if ($info == true) {
           // 返回提示信息
           return ['res' => 0, 'msg' => '产品标题重复!'];
       }
       // 加入添加时间
       $data['time'] = time();
       // 添加发布管理员
       $data['username'] = Session::get('username');
       // 实例化模型
       $product = new ProductModel();
       // 进行添加并验证
       if ($product->save($data)) {
           // 返回提示信息
           return ['res' => 1, 'msg' => '发布成功!'];
       } else {
           // 返回提示信息
           return ['res' => 0, 'msg' => '发布失败!'];
       }
   }

   public function edit()
   {
       $proId = Request::param('id');
       $product = ProductModel::get($proId);
       $this->view->product = $product;
       // 渲染产品修改界面
       return $this->fetch();
   }

   public function DoEdit()
   {
       // 获取提交过来的数据
       $data = Request::param();
       $product = new ProductModel();
       $data['time'] = time();
       $data['username'] = Session::get('username');
       $info = $product->save([
           'title' => $data['title'],
           'desc' => $data['desc'],
           'content' => $data['content'],
           'once' => $data['once'],
           'over_night' => $data['over_night'],
           'time' => $data['time'],
           'username' => $data['username'],
       ], ['id' => $data['id']]);
       if ($info) {
           return ['res' => 1, 'msg' => '更新成功!'];
       } else {
           return ['res' => 0, 'msg' => '更新失败!'];
       }
   }

   public function del()
   {
       // 获取需要删除的产品id
       $proId = Request::param('id');
       $product = new ProductModel();
       if ($product->destroy($proId)) {
           return ['res'=>1,'msg'=>'删除成功!'];
       }
   }
}

批改老师:天蓬老师批改时间:2019-04-12 15:44:39
老师总结:$product = new ProductModel(); 类方法中, 尽可能不要出现这样的直接实例化的语句, 推荐使用依赖注入的方式,通过参数将外部对象注入到方法中

发布手记

热门词条