BookController.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. // php artisan make:controller BookController
  3. // app/Http/Controllers/BookController.php
  4. namespace App\Http\Controllers;
  5. use Illuminate\Http\Request;
  6. // Фасад DB здесь не используется; здесь используется модель
  7. use App\Models\Book;
  8. class BookController extends Controller {
  9. function index() {
  10. $books = Book::all(); // Достать все книги
  11. return view("books", ["rows" => $books]);
  12. }
  13. function add() {
  14. return view("add_book_form");
  15. }
  16. function view(Book $book) {
  17. return view("book", ["book" => $book]);
  18. }
  19. function edit(Book $book) {
  20. return view("edit_book_form", ["book" => $book]);
  21. }
  22. function store(Request $request) {
  23. $request->validate([
  24. "id" => "nullable|exists:books",
  25. "name" => "required",
  26. "annotation" => "nullable",
  27. "pagecount" => "nullable|numeric",
  28. "year" => "nullable|numeric",
  29. "isbn" => "nullable"
  30. ], [
  31. "name" => "Книга должна иметь название."
  32. ]);
  33. $arr = $request;
  34. $book = Book::find($arr->id) ?? new Book;
  35. $book->name = $arr->name;
  36. $book->annotation = $arr->annotation;
  37. $book->pagecount = $arr->pagecount;
  38. $book->year = $arr->year;
  39. $book->isbn = $arr->isbn;
  40. $book->authors = 0;
  41. $book->save();
  42. return view("success");
  43. }
  44. }