BookController.php 1022 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use Illuminate\Support\Facades\Storage;
  5. class BookController extends Controller
  6. {
  7. public function show($id)
  8. {
  9. $books = $this->loadBooks();
  10. $book = collect($books)->firstWhere('id', $id);
  11. if (!$book) {
  12. abort(404);
  13. }
  14. // 获取其他版本
  15. $otherVersions = array_filter($books, function ($b) use ($book) {
  16. return $b['title'] == $book['title'] && $b['id'] != $book['id'];
  17. });
  18. return view('library.book.show', compact('book', 'otherVersions'));
  19. }
  20. public function read($id)
  21. {
  22. $books = $this->loadBooks();
  23. $book = collect($books)->firstWhere('id', $id);
  24. if (!$book) {
  25. abort(404);
  26. }
  27. return view('library.book.read', compact('book'));
  28. }
  29. private function loadBooks()
  30. {
  31. $json = Storage::disk('public')->get('data/books.json');
  32. return json_decode($json, true);
  33. }
  34. }