| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | 
							- <?php
 
- namespace App\Http\Controllers;
 
- use Illuminate\Http\Request;
 
- use App\Models\Article;
 
- class ArticleController extends Controller
 
- {
 
- 	function published() {
 
- 		return view("published", ["rows" => 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");
 
- 	}
 
- }
 
 
  |