$authors]); } function add() { return view("add_author_form"); } function view(Author $author) { return view("author", [ "author" => $author->load([ "books" => function($query) {}, "comments" => function($query) { $query->recent(); } ]) ]); } function edit(Author $author) { return view("edit_author_form", ["author" => $author]); } function store(Request $request) { $request->validate([ "id" => "nullable|exists:authors", "name" => "required", "description" => "nullable" ], [ "name" => "Автор должен иметь имя." ]); $arr = $request; $author = Author::find($arr->id) ?? new Author; $author->name = $arr->name; $author->description = $arr->description; $author->save(); return view("success"); } function comment(Author $author, Request $request) { $request->validate([ "name" => "required", "email" => "required|email", "content" => "required" ], [ "name" => "Укажите ваше имя.", "email" => "Укажите ваш email.", "content" => "Введите комментарий." ]); $arr = $request; $author->comments()->create([ "name" => $arr->name, "email" => $arr->email, "content" => $arr->content ]); return view("success"); } function drop(Author $author) { $author->books()->delete(); $author->delete(); return view("success"); } }