CourseBooksController.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\CourseBook;
  4. use Illuminate\Http\Request;
  5. use App\Http\Controllers\Controller;
  6. use App\Http\Requests\CourseBookRequest;
  7. use Illuminate\Support\Facades\Auth;
  8. class CourseBooksController extends Controller
  9. {
  10. public function __construct()
  11. {
  12. $this->middleware('auth', ['except' => ['index', 'show']]);
  13. }
  14. public function index()
  15. {
  16. $books = CourseBook::with('image')->paginate();
  17. return view('pages.course_books.index', compact('books'));
  18. }
  19. public function show(CourseBook $book)
  20. {
  21. // 非站长 只可以查看 价格 < 1000 人民币教程
  22. if (!empty(Auth::user()) && Auth::id() === 1) {
  23. } elseif ($book->prices >= 1000) {
  24. abort(404);
  25. }
  26. $sections = $book->sections;
  27. return view('pages.course_books.show', compact('book', 'sections'));
  28. }
  29. public function create(CourseBook $book)
  30. {
  31. $this->authorize('admin', $book);
  32. return view('pages.course_books.create_and_edit', compact('book'));
  33. }
  34. public function store(CourseBookRequest $request, CourseBook $book)
  35. {
  36. $this->authorize('admin', $book);
  37. $book->fill($request->all());
  38. $book->user_id = Auth::id();
  39. $book->save();
  40. return redirect()->route('course.books.show', $book->id)->with('success', '教程创建成功.');
  41. }
  42. public function edit(CourseBook $book)
  43. {
  44. $this->authorize('admin', $book);
  45. return view('pages.course_books.create_and_edit', compact('book'));
  46. }
  47. public function update(CourseBookRequest $request, CourseBook $book)
  48. {
  49. $this->authorize('admin', $book);
  50. $book->update($request->all());
  51. return redirect()->route('course.books.show', $book->id)->with('message', '更新成功.');
  52. }
  53. public function destroy(CourseBook $book)
  54. {
  55. $this->authorize('admin', $book);
  56. $book->delete();
  57. return redirect()->route('course.books.index')->with('message', '删除成功.');
  58. }
  59. }