Types.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <?php
  2. namespace app\admin\controller;
  3. use app\admin\controller\Base;
  4. use think\Request;
  5. use think\Session;
  6. use app\admin\model\Admin;
  7. use app\admin\model\Type;
  8. use app\admin\model\Category as CategoryModel;
  9. class Types extends Base
  10. {
  11. //分类列表
  12. public function index(Request $request)
  13. {
  14. //接收页码
  15. $page = $request->get('page') ? $request->get('page') : 1;
  16. //查询所有文章分类,并进行分页
  17. $list = Type::order('orders','desc')->paginate(25);
  18. $menu2 = CategoryModel::order('pid','asc')->select();
  19. //将文章分类home_menu_id对应文本
  20. //添加一个数组索引
  21. $arr = ['0'=>'无关联'];
  22. //创建数组 id为主键title建值
  23. foreach($menu2 as $key=>$val){
  24. $arr[$val['id']] = $val['title'];
  25. }
  26. //根据上方修改pid
  27. foreach($list as $key=>$val){
  28. if(isset($arr[$val['pid']])){
  29. $list[$key]['home_menu'] = $arr[$val['pid']];
  30. }else{
  31. $list[$key]['home_menu'] = "栏目丢失!";
  32. }
  33. }
  34. return view($template = 'list',['list'=>$list,'page'=>$page]);
  35. }
  36. //分类状态
  37. public function setStatus(Request $request)
  38. {
  39. //判断是否为ajax提交
  40. if(request()->isAjax()){
  41. //获取前台传递id
  42. $id = $request->param('id');
  43. //根据id查询数据
  44. $result = Type::get($id);
  45. //查询原生数据进行判断
  46. if($result->getData('status') == 1){
  47. $res=Type::update(['status'=>0],['id'=>$id]);
  48. if($res){
  49. $this -> logs("分类状态 [ID: ".$id.'] 停用成功!');
  50. $this->success("停用成功!",'Types/index');
  51. }else{
  52. $this->error("停用失败!");
  53. }
  54. }else{
  55. $res=Type::update(['status'=>1],['id'=>$id]);
  56. if($res){
  57. $this -> logs("分类状态 [ID: ".$id.'] 启用成功!');
  58. $this->success("启用成功!",'Types/index');
  59. }else{
  60. $this->error("启用失败!");
  61. }
  62. }
  63. }
  64. }
  65. //分类添加
  66. public function add(Request $request)
  67. {
  68. //判断是否为ajax提交
  69. if(request()->isAjax()){
  70. $orders = Type::all();
  71. $order="1";
  72. if($orders != NULL | $orders != "")
  73. foreach($orders as $key=>$val){
  74. $order = $val["orders"]+1;
  75. }
  76. //接收提交数据
  77. //$data = array_filter($request->param());
  78. $data = $request->param();
  79. //if($data['mid'] =null){
  80. //$data['mid'] = 0;
  81. //}
  82. //var_dump($data);
  83. $data['create_time'] = $data['update_time'] = time();//时间
  84. $data['orders'] = $order;//排序
  85. //$res = Type::insert($data);//添加
  86. $admin = new Type;
  87. // 过滤post数组中的非数据表字段数据
  88. $res = $admin->allowField(true)->save($data);
  89. if($res){
  90. $getid = $admin->id;
  91. $this -> logs("分类添加 [ID: ".$getid.'] 添加成功!');
  92. $this -> success("添加成功!",'Types/index');
  93. }else{
  94. $this -> error("添加失败!",'Types/index');
  95. }
  96. }
  97. //查询分类所属数据
  98. $menunew = CategoryModel::field('id,pid,title')->select()->toArray();
  99. $menunew = json_encode(alldigui($menunew,0),JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
  100. $this -> view -> assign('menunew',$menunew);
  101. //渲染界面
  102. return $this -> view -> fetch('add');
  103. }
  104. //分类编辑
  105. public function edit(Request $request)
  106. {
  107. //判断是否为ajax提交
  108. if(request()->isAjax()){
  109. //获取所有数据
  110. $data = array_filter($request->param());
  111. $res =Type::update($data);
  112. if($res){
  113. $this -> logs("分类编辑 [ID: ".$data['id'].'] 修改成功!');
  114. $this -> success("修改成功!",'Types/index');
  115. }else{
  116. $this -> error("修改失败!");
  117. }
  118. }
  119. //显示旧数据
  120. $id = $request->get('id');//获取对应ID
  121. //读取旧数据
  122. $list = Type::get($id);
  123. //查询分类所属数据
  124. $menunew = CategoryModel::field('id,pid,title')->select()->toArray();
  125. $menunew = json_encode(alldigui($menunew,0),JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
  126. //赋值给模板
  127. $this -> view -> assign(['list'=>$list,'menunew'=>$menunew]);
  128. return $this -> view -> fetch('edit');
  129. }
  130. //分类删除/批量删除
  131. public function deletes(Request $request)
  132. {
  133. //判断是否为ajax提交
  134. if(request()->isAjax()){
  135. //获取传递过来的id
  136. $id = trim($request -> post('id'));
  137. //获取传递过来的值并删除
  138. $res =Type::destroy($id);
  139. if($res){
  140. $this -> logs("分类删除 [ID: ".$id.'] 删除成功!');
  141. $this -> success("删除成功!",'Types/index');
  142. }else{
  143. $this -> error("删除失败!");
  144. }
  145. }
  146. }
  147. }