12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- <?php
- namespace App\Http\Controllers;
- use Illuminate\Http\Request;
- use App\Models\User;
- use App\Models\Comment;
- use App\Models\Moderate;
- use App\Models\Post;
- use App\Events\ValidatePost;
- use App\Events\ValidateComment;
- class PostController extends Controller
- {
- // Переход по страницам
- public function all(){ return view('posts.all', ['posts' => 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();
- }
- }
|