ArticleController.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use App\Models\Article;
  5. class ArticleController extends Controller
  6. {
  7. function index() {
  8. return view("articles", ["rows" => Article::all()]);
  9. }
  10. function add() {
  11. return view("add_article_form");
  12. }
  13. function view(Article $article) {
  14. return view("article", [
  15. "article" => $article
  16. ]);
  17. }
  18. function edit(Article $article) {
  19. return view("edit_article_form", ["article" => $article]);
  20. }
  21. function store(Request $request) {
  22. $request->validate([
  23. "id" => "nullable|exists:articles",
  24. "title" => "required",
  25. "description" => "nullable",
  26. "content" => "required",
  27. "status" => "required",
  28. "publish_at" => "nullable",
  29. "unpublish_at" => "nullable"
  30. ], [
  31. "name" => "Публикация должна иметь название.",
  32. "content" => "Публикация должна иметь текст."
  33. ]);
  34. $arr = $request;
  35. $article = Article::find($arr->id) ?? new Article;
  36. $article->title = $arr->title;
  37. $article->description = $arr->description ?? explode(".", $arr->content)[0];
  38. $article->content = $arr->content;
  39. $article->status = $arr->status;
  40. $article->publish_at = $arr->publish_at;
  41. $article->unpublish_at = $arr->unpublish_at;
  42. $article->save();
  43. return view("success");
  44. }
  45. function drop(Article $article) {
  46. $article->delete();
  47. return view("success");
  48. }
  49. }