BookController.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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. function drop(Book $book) {
  45. $book->delete();
  46. return view("success");
  47. }
  48. }