CategoryController.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. <?php
  2. namespace App\Http\Controllers\Backend;
  3. use App\Models\Category;
  4. use App\Models\Navigation;
  5. use App\Http\Controllers\Controller;
  6. use App\Http\Requests\Backend\Category\CreateRequest;
  7. use App\Http\Requests\Backend\Category\UpdateRequest;
  8. class CategoryController extends Controller
  9. {
  10. /**
  11. * Display a listing of the resource.
  12. *
  13. * @return \Illuminate\Http\Response
  14. */
  15. public function index()
  16. {
  17. $category = Category::getNestedList('name', null, '&nbsp;&nbsp;&nbsp;&nbsp;');
  18. return view("backend.category.index", compact('category'));
  19. }
  20. /**
  21. * Show the form for creating a new resource.
  22. *
  23. * @return \Illuminate\Http\Response
  24. */
  25. public function create()
  26. {
  27. return view('backend.category.create');
  28. }
  29. /**
  30. * @param CreateRequest $request
  31. * @return \Illuminate\Http\RedirectResponse
  32. */
  33. public function store(CreateRequest $request)
  34. {
  35. !$request->cate_id
  36. ? Category::create(['name' => $request->name])
  37. : Category::find($request->cate_id)->children()->create(['name' => $request->name]);
  38. return redirect(route('backend.category.index'))->with('success', '添加成功');
  39. }
  40. /**
  41. * Display the specified resource.
  42. *
  43. * @param int $id
  44. * @return \Illuminate\Http\Response
  45. */
  46. public function show($id)
  47. {
  48. //
  49. }
  50. /**
  51. * Show the form for editing the specified resource.
  52. *
  53. * @param int $id
  54. * @return \Illuminate\Http\Response
  55. */
  56. public function edit($id)
  57. {
  58. $category = Category::find($id);
  59. return view('backend.category.edit', compact('category'));
  60. }
  61. /**
  62. * update
  63. *
  64. * @param UpdateRequest $request
  65. * @param $id
  66. * @return $this|\Illuminate\Http\RedirectResponse
  67. */
  68. public function update(UpdateRequest $request, $id)
  69. {
  70. $category = Category::findOrFail($id);
  71. $category->name = $request->name;
  72. $category->save();
  73. if ($request->cate_id != 0 && $category->parent_id != $request->cate_id) {
  74. $parent = Category::findOrFail($request->cate_id);
  75. $category->makeChildOf($parent);
  76. } else {
  77. $category->makeRoot();
  78. }
  79. return redirect(route('backend.category.index'))->with('success', '分类修改成功');
  80. }
  81. /**
  82. * Remove the specified resource from storage.
  83. *
  84. * @param int $id
  85. * @return \Illuminate\Http\Response
  86. */
  87. public function destroy($id)
  88. {
  89. return Category::destroy($id) ? response()->json(['status' => 0]) : response()->json(['status' => 1]);
  90. }
  91. /**
  92. * @param $id
  93. * @return $this|\Illuminate\Http\RedirectResponse
  94. */
  95. public function setNavigation($id)
  96. {
  97. $category = Category::findOrFail($id);
  98. if (Navigation::query()->where('article_cate_id', $category->id)->count()) {
  99. return redirect()->back()->withErrors('当前分类已存在导航');
  100. }
  101. Navigation::create([
  102. 'article_cate_id' => $category->id,
  103. 'nav_type' => 1,
  104. 'name' => $category->name,
  105. 'url' => route('category', ['id' => $category->id]),
  106. 'sequence' => 0
  107. ]);
  108. return redirect()->back()->with('success', '设置成功');
  109. }
  110. }