ArticleController.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Controllers\Controller;
  4. use App\Http\Requests\Admin\ArticleRequest;
  5. use App\Models\Article;
  6. use Exception;
  7. use Illuminate\Http\JsonResponse;
  8. use Illuminate\Http\RedirectResponse;
  9. use Illuminate\Http\Request;
  10. use Log;
  11. use Redirect;
  12. use Response;
  13. use Session;
  14. class ArticleController extends Controller
  15. {
  16. // 文章列表
  17. public function index(Request $request)
  18. {
  19. $view['articles'] = Article::orderByDesc('sort')->paginate(15)->appends($request->except('page'));
  20. return view('admin.article.index', $view);
  21. }
  22. // 添加文章页面
  23. public function create()
  24. {
  25. return view('admin.article.create');
  26. }
  27. // 添加文章
  28. public function store(ArticleRequest $request)
  29. {
  30. $data = $request->except('_method', '_token');
  31. // LOGO
  32. if ($request->input('type') != 4 && $request->hasFile('logo')) {
  33. $data['logo'] = 'upload/'.$request->file('logo')->store('images');
  34. if (!$data['logo']) {
  35. Session::flash('errorMsg', 'LOGO不合法');
  36. return Redirect::back()->withInput();
  37. }
  38. }
  39. $id = Article::insertGetId($data);
  40. if ($id) {
  41. Session::flash('successMsg', '添加成功');
  42. } else {
  43. Session::flash('errorMsg', '添加失败');
  44. }
  45. return Redirect::to(route('admin.article.edit', $id));
  46. }
  47. // 文章页面
  48. public function show($id)
  49. {
  50. $view['article'] = Article::find($id);
  51. return view('admin.article.show', $view);
  52. }
  53. // 编辑文章页面
  54. public function edit($id)
  55. {
  56. $view['article'] = Article::find($id);
  57. return view('admin.article.edit', $view);
  58. }
  59. // 编辑文章
  60. public function update(ArticleRequest $request, $id): RedirectResponse
  61. {
  62. $data = $request->except('_method', '_token');
  63. $data['logo'] = $data['logo'] ?? null;
  64. // LOGO
  65. if ($request->input('type') != 4 && $request->hasFile('logo')) {
  66. $data['logo'] = 'upload/'.$request->file('logo')->store('images');
  67. if (!$data['logo']) {
  68. Session::flash('errorMsg', 'LOGO不合法');
  69. return Redirect::back()->withInput();
  70. }
  71. }
  72. if (Article::find($id)->update($data)) {
  73. Session::flash('successMsg', '编辑成功');
  74. } else {
  75. Session::flash('errorMsg', '编辑失败');
  76. }
  77. return Redirect::to(route('admin.article.edit', $id));
  78. }
  79. // 删除文章
  80. public function destroy($id): JsonResponse
  81. {
  82. try {
  83. Article::find($id)->delete();
  84. } catch (Exception $e) {
  85. Log::error('删除文章失败:'.$e->getMessage());
  86. return Response::json(
  87. ['status' => 'fail', 'message' => '删除失败:'.$e->getMessage()]
  88. );
  89. }
  90. return Response::json(['status' => 'success', 'message' => '删除成功']);
  91. }
  92. }