Article::published()->get()]); } function index() { $all = Article::all()->groupBy("status"); $args = [ "drafts" => $all[Article::STATUS_DRAFT] ?? null, "pending" => $all[Article::STATUS_PENDING] ?? null, "published" => $all[Article::STATUS_PUBLISHED] ?? null, "archive" => $all[Article::STATUS_ARCHIVE] ?? null ]; return view("articles", $args); } function add() { return view("add_article_form"); } function view(Article $article) { return view("article", [ "article" => $article ]); } function edit(Article $article) { return view("edit_article_form", ["article" => $article]); } function store(Request $request) { $request->validate([ "id" => "nullable|exists:articles", "title" => "required", "description" => "nullable", "content" => "required", "status" => "required", "publish_at" => "nullable", "unpublish_at" => "nullable" ], [ "name" => "Публикация должна иметь название.", "content" => "Публикация должна иметь текст." ]); $arr = $request; $article = Article::find($arr->id) ?? new Article; $article->title = $arr->title; $article->description = $arr->description ?? explode(".", $arr->content)[0]; $article->content = $arr->content; $article->status = $arr->status; $article->publish_at = $arr->publish_at; $article->unpublish_at = $arr->unpublish_at; $article->save(); return view("success"); } function drop(Article $article) { $article->delete(); return view("success"); } }