企业站点——新闻模块代码实现

原创 2019-04-12 12:50:06 277
摘要:<?phpnamespace app\admin\controller;use think\Controller;use app\admin\controller\Common;use app\admin\model\NewsModel;use think\facade\Request;use think\facade\Session;class News extends Common{ &

<?php
namespace app\admin\controller;

use think\Controller;
use app\admin\controller\Common;
use app\admin\model\NewsModel;
use think\facade\Request;
use think\facade\Session;



class News extends Common{
   public function index(){
       //查询操作
       $news = new NewsModel();
       //按照id降序进行查看,分页每页8条数据
       $new = $news->order('id','desc')->paginate(8);
       $this->view->new=$new;
       //渲染新闻列表
       return $this->fetch();
   }

   public function add(){
       //渲染添加界面
       return $this->fetch();
   }

   //新闻内容的上传框的操作,添加图片
   public function upload(){
       //获取前台提交的图片信息
       $file = Request::file('img');
       //验证文件并移动到指定目录>>会被自动创建在public中
       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();
       //加入发布的时间
       $data['time'] = time();
       //加入发布新闻的管理员名称
       $data['username'] = Session::get('username');
       //独立接收新闻标题字段,用于验证是否重复
       $title=$data['title'];
       $news=NewsModel::where('title',"$title")->find();
       if($news == true){
           return['res'=>0,'msg'=>'新闻标题重复!'];
       }
       //如果新闻标题不重复,将内容添加到数据表中,并且进行存储验证
       $new = new NewsModel();
       if($new->save($data)){
           return['res'=>1,'msg'=>'发布成功!'];
       }else{
           return['res'=>0,'msg'=>'发布失败!'];
       }
   }

   public function edit(){
       //查询新闻原有的信息
       $newId = Request::param('id');
       $new = NewsModel::get($newId);
       //将数据赋值到模板
       $this->view->new=$new;

       //渲染编辑页面
       return $this->fetch();
   }

   public function DoEdit(){
       //获取前台提交的数据
       $data = Request::param();
       $new = new NewsModel();
       //$res用来接收更新操作的结果,save的第二个参数是修改条件
       $res = $new->save([
           'title'=>$data['title'],
           'desc'=>$data['desc'],
           'content'=>$data['content'],
           'username'=>Session::get('username'),
           'time'=>time(),
       ],['id'=>$data['id']]);
       //验证修改结果
       if($res){
           return ['res'=>1,'msg'=>'修改成功!'];
       }else{
           return ['res'=>0,'msg'=>'修改失败!'];
       }
   }

   //删除操作
   public function del(){
       //获取需要删除的新闻id
       $newId = Request::param('id');
       //删除并验证
       $new = new NewsModel();
       if($new->destroy($newId)){
           return['res'=>1,'msg'=>'删除成功!'];
       }else{
           return['res'=>0,'msg'=>'删除失败!'];
       }
   }
}

批改老师:天蓬老师批改时间:2019-04-12 14:08:37
老师总结:public function DoEdit(), 这样的方法命名,其实是不对的, 应该是: doEdit(), 请参考官方手册

发布手记

热门词条