Post::with("user")->orderBy("created_at", 'desc')->orderBy("id", 'desc')->get(), 'users' => User::orderBy("name")->get()]); } public function view_update(Request $request){ return view('posts.update', ['post' => Post::with("user")->where('id', $request->id)->get()[0], 'admins' => User::where('role', 'admin')->orderBy("name")->get(), 'moderates' => Moderate::allPost($request->id) ]); } public function single_post(Request $request){ return view('posts.single_post', ['post' => Post::where('id', $request->id)->with('user')->get()[0], 'comments' => Comment::where('post_id', $request->id)->with('user')->orderBy("created_at", 'desc')->get(), 'moderates' => Moderate::allPost($request->id), 'users' => User::orderBy("name")->get() ]); } // Взаимодействия со страницами function insert(Request $request) { // Добавить event(new ValidatePost($request)); $post = new Post; $post->user_id = $request->input("user"); $post->text = $request->input("text"); $post->created_at = $request->input("date_publication"); $post->save(); return back(); } function update(Request $request) { // Изменить event(new ValidateComment($request)); $post = Post::find($request->input("id")); $post->text = $request->input("text"); $post->save(); $moderate = new Moderate; $moderate->user_id = $request->input("user"); $moderate->post_type = "App\Models\Post"; $moderate->post_id = $request->input("id"); $moderate->save(); return back(); } function delete_by_id($id) { // Удаление $comments = Comment::where('post_id', $id)->get(); foreach ($comments as $comment) (new CommentController)->delete_by_id($id); Moderate::where('post_type', "App\Models\Post")->where('post_id', $id)->delete(); Post::where('id', $id)->delete(); return back(); } function delete(Request $request) { // Удаление $comments = Comment::where('post_id', $request->id)->get(); foreach ($comments as $comment) (new CommentController)->delete_by_id($comment->id); Moderate::where('post_type', "App\Models\Post")->where('post_id', $request->id)->delete(); Post::where('id', $request->id)->delete(); return back(); } }