Article.php 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. <?php
  2. namespace app\admin\controller;
  3. use think\Controller;
  4. use think\Request;
  5. use app\admin\model\ArticleModel;
  6. class Article extends Base
  7. {
  8. public function lst()//文章列表
  9. {
  10. return view();
  11. }
  12. public function lst_data(Request $request){//文章列表json数据动态表格显示(分页)
  13. $user = new ArticleModel();
  14. $title = request()->param('title');//接收请求数据id
  15. if(!empty($title)){//不为空执行搜索条件,为空则跳过判断条件直接显示列表页,
  16. $where = ['title'=>$title];
  17. //数据表获取总记录数
  18. $count = $user->where($where)->count();
  19. //获取每页显示的条数
  20. $limit= $request->param('limit');
  21. //获取当前页码
  22. $page= $request->param('page');
  23. //limit的起始位置
  24. $start=($page-1)*$limit;
  25. $list = $user
  26. ->limit("$start,$limit")
  27. ->where($where)
  28. ->select();
  29. //返回数据
  30. foreach ($list as $k => $v) {
  31. $list[$k]['time'] = date('Y-m-d H:i:s',$v['time']);
  32. }
  33. return ["code"=>0,"msg"=>"成功","count"=>$count,"data"=>$list];
  34. }
  35. //数据表获取总记录数
  36. $count = $user->count();
  37. //获取每页显示的条数
  38. $limit= $request->param('limit');
  39. //获取当前页码
  40. $page= $request->param('page');
  41. //limit的起始位置
  42. $start=($page-1)*$limit;
  43. $list = $user
  44. ->limit("$start,$limit")
  45. ->select();
  46. //返回数据
  47. foreach ($list as $k => $v) {
  48. $list[$k]['time'] = date('Y-m-d H:i:s',$v['time']);
  49. }
  50. return ["code"=>0,"msg"=>"成功","count"=>$count,"data"=>$list];
  51. }
  52. public function add(){//添加
  53. $user = new ArticleModel();
  54. // $catename = db('cates')->select();
  55. if(request()->isPost()){
  56. $data = input('post.');
  57. if($_FILES['pic']['tmp_name']){//上传图片
  58. $data['pic']=$this->upload();//调用upload方法
  59. }else{
  60. $data['pic']='';
  61. }
  62. $data['time']=time();
  63. $add=$user->insert($data);
  64. if($add){
  65. // $logger->info("添加成功");
  66. echo "<script>alert('添加信息成功!');window.parent.location.reload()</script>";//后台直接实现弹窗,操作完成并显示列表页
  67. }else{
  68. echo "<script>alert('添加信息失败');location.href='".url('article/add')."'</script>";
  69. }
  70. }
  71. // $this->assign([
  72. // 'catename'=>$catename,
  73. // ]);
  74. return view();
  75. }
  76. public function edit(){//编辑
  77. $user = new ArticleModel();
  78. $id = input('id');
  79. // $catename = db('cates')->select();
  80. $db = $user->where('id',$id)->find();
  81. if(request()->isPost()){
  82. $data = input('post.');
  83. //处理图片上传
  84. if($_FILES['pic']['tmp_name']){
  85. $oldarticles=db('article')->field('pic')->find($data['id']);
  86. $oldarticleImg=ADMINIMG.$oldarticles['pic'];
  87. if(file_exists($oldarticleImg)){
  88. @unlink($oldarticleImg);
  89. }
  90. $data['pic']=$this->upload();
  91. }
  92. $data['time'] = time();
  93. $save=$user->update($data);
  94. if($save!==false){
  95. echo "<script>alert('修改信息成功!');window.parent.location.reload()</script>";//后台直接实现弹窗,操作完成并显示列表页
  96. }else{
  97. echo "<script>alert('修改信息失败');location.href='".url('article/edit')."'</script>";
  98. }
  99. }
  100. $this->assign([
  101. 'db'=>$db,
  102. // 'catename'=>$catename,
  103. ]);
  104. return view();
  105. }
  106. public function del(){//删除
  107. $user = new ArticleModel();
  108. if(request()->isPost()){
  109. $id = input('id');
  110. //先删除本地文件夹的图片
  111. $pic=$user->field('pic')->where('id',$id)->find();
  112. if(!empty($pic)){//判断不为空
  113. $picSrc=ADMINIMG.$pic['pic'];
  114. if(file_exists($picSrc)){
  115. @unlink($picSrc);
  116. }
  117. }
  118. //在删除数据库信息
  119. $del=$user->where('id',$id)->delete();
  120. if($del){
  121. return 1;//删除成功
  122. }else{
  123. return 2;//删除失败
  124. }
  125. }else{
  126. return view();
  127. }
  128. }
  129. public function pdel(){//批量删除
  130. $user = new ArticleModel();
  131. if(request()->isPost()){
  132. $id = input('post.');//接收前台id
  133. $ids = implode(',',$id);//将id用逗号进行隔开
  134. $where = [
  135. 'id'=>['in',$ids],
  136. ];
  137. //批量删除本地图片
  138. $pic=$user->where($where)->column('pic');//查询满足条件的pic字段数组信息
  139. if(!empty($pic)){//判断不为空
  140. $pi = implode(',',$pic);//将pic(图片路径)字段用逗号进行隔开
  141. foreach ($pic as $value) {//将拆分的路径进行循环输出
  142. $picSrc = ADMINIMG.$value;//将入口文件(public/index.php)定义的本地图片存放路径和$value(图片名称)进行拼接
  143. if(file_exists($picSrc)){//如果该路径下有满足条件的图片名称则进行删除,file_exists():判断文件是否存在
  144. @unlink($picSrc);//@unlink():删除图片
  145. }
  146. }
  147. }
  148. $list = $user->where($where)->delete();
  149. if($list){
  150. return 1;//删除成功
  151. }else{
  152. return 2;//删除失败
  153. }
  154. }else{
  155. return view();
  156. }
  157. }
  158. //上传图片
  159. public function upload(){
  160. // 获取表单上传文件 例如上传了001.jpg
  161. $file = request()->file('pic');
  162. // 移动到框架应用根目录/public/uploads/ 目录下
  163. if($file){
  164. $info = $file->move(ROOT_PATH . 'public' . DS . 'static'. DS .'uploads');
  165. if($info){
  166. return $info->getSaveName();
  167. }else{
  168. // 上传失败获取错误信息
  169. echo $file->getError();die;
  170. }
  171. }
  172. }
  173. }