load("author"); // Достать все книги return view("books", ["rows" => $books]); } function add() { return view("add_book_form", ["authors" => Author::all()]); } function view(Book $book) { return view("book", ["book" => $book->load(["author" => function($query) {}, "comments" => function($query) { $query->recent(); }])]); } function edit(Book $book) { return view("edit_book_form", ["book" => $book]); } function store(Request $request) { $request->validate([ "id" => "nullable|exists:books", "name" => "required", "annotation" => "nullable", "pagecount" => "nullable|numeric", "year" => "nullable|numeric", "isbn" => "nullable", "author" => "required|exists:authors,id" ], [ "name" => "Книга должна иметь название.", "author" => "Книга должна иметь автора." ]); $arr = $request; $book = Book::find($arr->id) ?? new Book; $book->name = $arr->name; $book->annotation = $arr->annotation; $book->pagecount = $arr->pagecount; $book->year = $arr->year; $book->isbn = $arr->isbn; $book->author_id = $arr->author; $book->save(); return view("success"); } function comment(Book $book, Request $request) { $request->validate([ "name" => "required", "email" => "required|email", "content" => "required" ], [ "name" => "Укажите ваше имя.", "email" => "Укажите ваш email.", "content" => "Введите комментарий." ]); $arr = $request; $book->comments()->create([ "name" => $arr->name, "email" => $arr->email, "content" => $arr->content ]); return view("success"); } function drop(Book $book) { $book->comments()->delete(); $book->delete(); return view("success"); } }