TP6管理后台实战第五天-文章管理

技术TP6管理后台实战第五天-文章管理 TP6管理后台实战第五天-文章管理第五天目标:
1、文章管理进入开发:
1、文章分类管理1.1 文章分类列表 -- ok搜索项: 分类名称 分类状态列表项:ID,

TP6管理后台实战第五天-文章管理

第五天目标:

1、文章管理

进入开发:

1、文章分类管理

1.1 文章分类列表-好的

搜索项:分类名称分类状态

列表项:ID,分类名称,排序,文章数,是否显示操作(编辑,删除)

1.2 添加文章分类-好的

1.3 修改文章分类-好的

1.4 删除文章分类-好的

控制器代码:

1 /**

2 * 文章分类列表

3 */

四公共功能新闻类别列表()

5 {

6 if(!$this-access) exit('无此访问权限!');

8 $ data=request()-param();

9

10 $return_data=array(

11 ' admin _ info '=$ this-admin _ info,

12 'admin_id'=$this-admin_id

13 );

14

15 //搜索条件

16 $其中cond=array();

17如果(!空($ data[' cate _ name '])$ WHere cond[]=array(' cate _ name ',' like ',' % ').$data['cate_name'].'%');

18如果(!空($ data[' is _ show '])$ WHere cond[]=array(' is _ show ','=',$ data[' is _ show ']);

19

20 //搜索默认值

21 $return_data['cate_name']=空($ data[' cate _ name '])' ' : $ data[' cate _ name '];

22 $return_data['is_show']=空($ data[' is _ show '])' ' : $ data[' is _ show '];

23

24

25 //获取列表

26 $ data _ list=db : name(' yphp _ news _ cate ')-where($ where cond)-order(' cate _ orders ',' desc')-paginate(array(

27 'list_rows'=10,

28"查询"=$数据

29))-每个(功能($item,$ key){ 0

30

31 $ item[' news _ count ']=db : name(' yphp _ news ')-其中(' cate_id ',$ item[' id '])-count();

32返回$项;

33 });

34

35

36 $ return _ data[' data _ list ']=$ data _ list;

37 //获取分页显示

38 $ return _ data[' page ']=$ data _ list-render();

39

40返回视图(' news/news_cate_list ',$ return _ data);

41 }

42

43 /**

44 * 文章分类

45 */

46公共功能新闻目录(新闻目录)

47 {

48 if(!$this-access)返回json(数组(“状态”=“失败”,“消息”=)无此访问权限!'));

49

50 $ id=request()-param(' id ');

51

52 if(!空($id))

53 {

54

55 $ news _ count=db : name(' yphp _ news ')-其中(' cate_id ',$ id)-count();

56 if ($news_count 0)

57 {

58返回json(数组(“状态”=“失败”,“消息”=)删除失败,该分类下还有$news_count .篇文章'));

59 }

还有60个

61 {

62 Db::name('yphp_news_cate')-where("id",$id)-delete();
63 return json(array('status'='SUCCESS','msg'='删除成功'));
64 }
65 }
66 }
67
68 /**
69 * 添加文章分类
70 */
71 public function newsCateAdd()
72 {
73 if (!$this-access) exit('无此访问权限!');
74
75 return view("news/news_cate_add");
76 }
77 /**
78 * 修改文章分类
79 */
80 public function newsCateEdit()
81 {
82 if (!$this-access) exit('无此访问权限!');
83
84 $id = request()-param('id');
85
86
87 $info = Db::name('yphp_news_cate')-where('id',$id)-find();
88
89 return view("news/news_cate_edit",array('info'=$info));
90 }
91 /**
92 * 添加/修改文章分类操作
93 */
94 public function newsCateAddAct()
95 {
96 $data = request()-param();
97
98 if(empty($data['id']))
99 {
100 $cate_id = Db::name('yphp_news_cate')-strict(false)-insertGetId($data);
101 if ($cate_id 0)
102 {
103 return json(array('status'='SUCCESS','msg'='添加成功'));
104 }
105 else
106 {
107 return json(array('status'='FAIL','msg'='添加分类失败'));
108 }
109 }
110 else
111 {
112 //修改
113 Db::name('yphp_news_cate')-strict(false)-update($data);
114 return json(array('status'='SUCCESS','msg'='修改成功!'));
115 }
116 }
View Code

2、文章管理

  2.1 文章列表 -- ok
    搜索项:标题,文章分类,文章状态,是否推荐
  2.2 添加文章 -- ok
  2.3 修改文章 -- ok
  2.3 删除文章 -- ok
控制器代码

  1 /**
  2      * 文章列表
  3      */
  4     public function newsList()
  5     {
  6 
  7         if (!$this-access)  exit('无此访问权限!');
  8 
  9         $data = request()-param();
 10 
 11         $return_data = array(
 12             'admin_info' = $this-admin_info,
 13             'admin_id'   = $this-admin_id
 14         );
 15 
 16         //搜索条件
 17         $whereCond = array();
 18         if (!empty($data['news_title'])) $whereCond[] = array('news_title','like','%'.$data['news_title'].'%');
 19         if (!empty($data['cate_id'])) $whereCond[] = array('cate_id','=',$data['cate_id']);
 20         if (!empty($data['is_show'])) $whereCond[] = array('is_show','=',$data['is_show']);
 21         if (!empty($data['is_recommed'])) $whereCond[] = array('is_recommed','=',$data['is_recommed']);
 22         
 23         //搜索默认值
 24         $return_data['news_title']     = empty($data['news_title'])'':$data['news_title'];
 25         $return_data['cate_id'] = empty($data['cate_id'])'':$data['cate_id'];
 26         $return_data['is_show'] = empty($data['is_show'])'':$data['is_show'];
 27         $return_data['is_recommed'] = empty($data['is_recommed'])'':$data['is_recommed'];
 28 
 29         //获取列表
 30         $data_list = Db::name('yphp_news')-where($whereCond)-where("is_del","1")-order('id', 'desc')-paginate(array(
 31             'list_rows' = 10,
 32             'query'     = $data
 33         ))-each(function($item, $key){
 34 
 35             $item['cate_name'] = Db::name('yphp_news_cate')-where("id",$item['cate_id'])-value('cate_name');
 36             return $item;
 37         });
 38         
 39         $return_data['cate_list'] = Db::name('yphp_news_cate')-where("is_show",1)-order('cate_orders', 'desc')-select();
 40 
 41         $return_data['data_list'] = $data_list;
 42         // 获取分页显示
 43         $return_data['page'] = $data_list-render();
 44 
 45        return view("news/news_list",$return_data);
 46     }
 47 
 48     /**
 49      * 文章回收站
 50      */
 51     public function newsTrash()
 52     {
 53         if (!$this-access)  exit('无此访问权限!');
 54 
 55         $data = request()-param();
 56 
 57         $return_data = array(
 58             'admin_info' = $this-admin_info,
 59             'admin_id'   = $this-admin_id
 60         );
 61 
 62         //搜索条件
 63         $whereCond = array();
 64         if (!empty($data['news_title'])) $whereCond[] = array('news_title','like','%'.$data['news_title'].'%');
 65         if (!empty($data['cate_id'])) $whereCond[] = array('cate_id','=',$data['cate_id']);
 66         if (!empty($data['is_show'])) $whereCond[] = array('is_show','=',$data['is_show']);
 67         if (!empty($data['is_recommed'])) $whereCond[] = array('is_recommed','=',$data['is_recommed']);
 68         
 69         //搜索默认值
 70         $return_data['news_title']     = empty($data['news_title'])'':$data['news_title'];
 71         $return_data['cate_id'] = empty($data['cate_id'])'':$data['cate_id'];
 72         $return_data['is_show'] = empty($data['is_show'])'':$data['is_show'];
 73         $return_data['is_recommed'] = empty($data['is_recommed'])'':$data['is_recommed'];
 74 
 75         //获取列表
 76         $data_list = Db::name('yphp_news')-where($whereCond)-where("is_del","2")-order('id', 'desc')-paginate(array(
 77             'list_rows' = 10,
 78             'query'     = $data
 79         ))-each(function($item, $key){
 80 
 81             $item['cate_name'] = Db::name('yphp_news_cate')-where("id",$item['cate_id'])-value('cate_name');
 82             return $item;
 83         });
 84         
 85         $return_data['cate_list'] = Db::name('yphp_news_cate')-where("is_show",1)-order('cate_orders', 'desc')-select();
 86 
 87         $return_data['data_list'] = $data_list;
 88         // 获取分页显示
 89         $return_data['page'] = $data_list-render();
 90 
 91        return view("news/news_trash_list",$return_data);
 92     }
 93 
 94      /**
 95      * 文章删除 放回收站
 96      */
 97     public function newsDel()
 98     {
 99         if (!$this-access)  return json(array('status'='FAIL','msg'='无此访问权限!')); 
100 
101        $id  = request()-param('id');
102 
103        if (!empty($id)) 
104        {
105 
106           $data = array(
107             'is_del'        = 2,
108             'del_datetime'  = date("Y-m-d H:i:s")
109           );
110            Db::name('yphp_news')-where("id",$id)-update($data);
111 
112            return json(array('status'='SUCCESS','msg'='删除成功,文章已放入回收站'));
113        }
114     }
115     /**
116      * 文章删除  彻底删除
117      */
118     public function newsDelReal()
119     {
120 
121         if (!$this-access)  return json(array('status'='FAIL','msg'='无此访问权限!')); 
122 
123         $id  = request()-param('id');
124 
125        if (!empty($id)) 
126        {
127 
128 
129            Db::name('yphp_news')-where("id",$id)-delete();
130 
131            return json(array('status'='SUCCESS','msg'='删除成功'));
132        }
133     }
134 
135     /**
136      * 文章恢复
137      */
138     public function newsDelRestore()
139     {
140         if (!$this-access)  return json(array('status'='FAIL','msg'='无此访问权限!')); 
141 
142         $id  = request()-param('id');
143 
144        if (!empty($id)) 
145        {
146 
147 
148            $data = array(
149             'is_del'        = 1,
150             'del_datetime'  = null
151           );
152            Db::name('yphp_news')-where("id",$id)-update($data);
153 
154            return json(array('status'='SUCCESS','msg'='删除成功'));
155        }
156     }
157 
158    
159 
160     /**
161      * 添加文章
162      */
163     public function newsAdd()
164     {
165         if (!$this-access)  exit('无此访问权限!');
166 
167        //获取文章分类
168        $cate_list = Db::name('yphp_news_cate')-where("is_show",1)-order('cate_orders', 'desc')-select();
169        
170        return view("news/news_add",array('cate_list'=$cate_list));
171     }
172     /**
173      * 修改文章
174      */
175     public function newsEdit()
176     {
177         if (!$this-access)  exit('无此访问权限!');
178 
179        $id = request()-param('id');
180 
181        $cate_list = Db::name('yphp_news_cate')-where("is_show",1)-order('cate_orders', 'desc')-select();
182 
183        $info = Db::name('yphp_news')-where('id',$id)-find();
184 
185         return view("news/news_edit",array('info'=$info,'cate_list'=$cate_list));
186     }
187 
188     /**
189      * 上传图片
190      */
191     public function uploadImg()
192     {
193         // 获取表单上传文件 例如上传了001.jpg
194         $file = request()-file('file');
195         $fiels = request()-file();
196         // 上传到本地服务器
197          try {
198             validate(['image'='fileSize:5120|fileExt:jpg,png,gif,jpeg,bmp|fileMime:image/jpeg,image/gif,image/png,image/bmp'])-check($fiels);
199 
200             $savename = \think\facade\Filesystem::disk('public')-putFile( 'news', $file);
201 
202             return json(array('status'='SUCCESS','msg'="上传成功",'filename'="/uploads/".$savename));
203 
204         } catch (\think\exception\ValidateException $e) {
205 
206             return json(array('status'='FAIL','msg'="上传失败".$e-getMessage()));
207         }
208     }
209 
210     /**
211      *  添加文件操作
212      */
213     public function newsAddAct()
214     {
215         $data = request()-param();
216 
217         $data['news_desc'] = htmlspecialchars($data['news_desc']);
218         $data['news_content'] = htmlspecialchars($data['news_content']);
219 
220         if(empty($data['id']))
221        {
222 
223         $data['add_datetime'] = date("Y-m-d H:i:s");
224 
225          $id = Db::name('yphp_news')-strict(false)-insertGetId($data);
226          if ($id  0) 
227          {
228              return json(array('status'='SUCCESS','msg'='添加成功'));
229          }
230          else
231          {
232             return json(array('status'='FAIL','msg'='添加失败'));
233          }
234        }
235        else
236        {
237          //修改
238          Db::name('yphp_news')-strict(false)-update($data);
239          return json(array('status'='SUCCESS','msg'='修改成功!'));
240        }
241     }

View Code

3、文章回收站

  3.1 回收站列表 -- ok
  3.2 彻底删除文章 -- ok
  3.3 恢复已删除的文章 -- ok

4、遇到的问题

  4.1 文章内容要有富文本编辑器编辑内容和文件上传。具体怎么操作呢
    见文章: TP6框架中引用KindEditor编辑器
  4.2 文章封面,需要有无刷新进行图片上传。具体怎么操作
    见文章:TP6框架中无刷新上传文件

唠唠嗑:

遇到问题就要去解决,慢慢的解决的问题多了,在看到新的问题就有了思路。
遇到问题实在没解决也没关系,先绕过去或者找一个替代方案,后期多看看问题相关的内容,多思考,没准有一天就突然明白了。
附完成后部分效果图:
文章列表
添加文章

编辑文章

文章分类管理

如果你感觉有收获,欢迎给我打赏 以激励我输出更多优质内容,联系QQ:466146588

蛮挂着看看,没准有惊喜呢,当然了写文章并不是为了赚打赏钱,最主要目的是更好的记录!

本文来自博客园,作者:yangphp,转载请注明原文链接:https://www.cnblogs.com/ypeih/p/15471383.html

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/52107.html

(0)

相关推荐

  • oracle18c新特性有哪些

    技术oracle18c新特性有哪些oracle18c新特性有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Oracle宣布Database 18c已

    攻略 2021年11月12日
  • CF1604A Era

    技术CF1604A Era CF1604A Era洛谷题面
    题目大意
    给一个长度为 \(n\) 的序列 \(a_1,a_2,\dots,a_n\),每次可以往序列中插入任意个整数,求最少插入多少个整数时

    礼包 2021年11月7日
  • 升级redhat 6.8 默认gdb 7.2到gdb 8.3.1的操作方法

    技术升级redhat 6.8 默认gdb 7.2到gdb 8.3.1的操作方法这期内容当中小编将会给大家带来有关升级redhat 6.8 默认gdb 7.2到gdb 8.3.1的操作方法,文章内容丰富且以专业的角度为大家

    攻略 2021年10月29日
  • effective C++ 第一章

    技术effective C++ 第一章 effective C++ 第一章第一章 让自己习惯 C++(Accustoming Youself to C++)
    条款1:视C++为一个语言联邦
    C++是个多

    礼包 2021年12月13日
  • 如何使用命令行工具Graudit来查找你代码中的安全漏洞

    技术如何使用命令行工具Graudit来查找你代码中的安全漏洞如何使用命令行工具Graudit来查找你代码中的安全漏洞,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易

    攻略 2021年11月12日
  • html中ul和ol哪个是有序(html中ulli表示什么意思)

    技术html中dl与ul的区别有哪些本篇内容主要讲解“html中dl与ul的区别有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“html中dl与ul的区别有哪些”吧!

    攻略 2021年12月23日