Category.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. declare(strict_types=1);
  3. namespace app\model;
  4. /**
  5. * 栏目模型
  6. */
  7. class Category extends Base
  8. {
  9. protected $schema = [
  10. "id" => "int",
  11. "parent_id" => "int",
  12. "name" => "varchar",
  13. "url" => "varchar",
  14. "route" => "varchar",
  15. "type" => "int",
  16. "is_nav" => "int",
  17. "remark" => "varchar",
  18. "sort" => "int",
  19. 'status' => "varchar",
  20. "title" => "varchar",
  21. "keywords" => "varchar",
  22. "description" => "varchar",
  23. "is_blank" => "int",
  24. "create_time" => "int",
  25. "update_time" => "int"
  26. ];
  27. // 获取列表
  28. public static function getList(array $param = [])
  29. {
  30. $where = [];
  31. if (isset($param['is_nav']) ) {
  32. $where[] = ['is_nav', '=', (int) $param['is_nav']];
  33. }
  34. if (isset($param['type']) ) {
  35. $where[] = ['type', '=', (int) $param['type']];
  36. }
  37. $order = isset($param['order']) ? (string) $param['order'] : "sort ASC,id DESC";
  38. return self::where($where)->field("id,parent_id,name,url,route,type,is_nav,remark,sort,title,keywords,
  39. description,is_blank,create_time,update_time")->order($order)->select();
  40. }
  41. // 导航状态修改 1,显示; 0,不显示
  42. public static function navStaus(int $id)
  43. {
  44. try {
  45. $info = self::find($id);
  46. $info->is_nav = -1 - $info['is_nav'];
  47. $info->save();
  48. return json(['code' => 0, 'msg' => '修改成功!', 'is_nav'=>$info->is_nav]);
  49. } catch (\Exception $e) {
  50. return json(['code' => 1, 'msg' => $e->getMessage()]);
  51. }
  52. }
  53. public static function selectOne()
  54. {
  55. $list = self::where('type', 1)->field("id, parent_id,name")->select();
  56. $top = new static([
  57. "id"=> 0,
  58. "parent_id" => -1,
  59. "name" => "顶级栏目"
  60. ]);
  61. $list->push($top);
  62. return list_tree($list, 'id', 'parent_id', 'child', -1);
  63. }
  64. }