Advertisement
Guest User

Untitled

a guest
Mar 21st, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.10 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Http\Controllers;
  4.  
  5. use App\Models\Category;
  6. use App\Models\Post;
  7.  
  8. use Illuminate\Http\Request;
  9. use Illuminate\Support\Facades\Auth;
  10. use Illuminate\Support\Facades\Redirect;
  11. use Illuminate\Validation\Rules\In;
  12.  
  13.  
  14. class PostController extends Controller
  15. {
  16.     /**
  17.      * Display a listing of the resource.
  18.      *
  19.      * @param  \Illuminate\Http\Request $request
  20.      * @return \Illuminate\Http\Response
  21.      */
  22.     public function index(Request $request)
  23.     {
  24.         if ($request->has('trashed')) {
  25.             $posts = Post::onlyTrashed();
  26.         } else {
  27.             $posts = Post::whereNotNull('user_id');
  28.         }
  29.  
  30.         $posts->where('type', $request->type);
  31.  
  32.         if (isset($request->status)) {
  33.             $posts->where('status', $request->status);
  34.         }
  35.  
  36.         if (isset($request->user_id)) {
  37.             $posts->where('user_id', $request->user_id);
  38.         }
  39.  
  40.  
  41.         return view('admin.pages.posts.list', [
  42.             'posts' => $posts->get(),
  43.             'active' => 'Список'
  44.         ]);
  45.     }
  46.  
  47.     /**
  48.      * Show the form for creating a new resource.
  49.      *
  50.      * @param  \Illuminate\Http\Request $request
  51.      * @return \Illuminate\Http\Response
  52.      */
  53.     public function create(Request $request)
  54.     {
  55.         $request['user_id'] = Auth::user()->id;
  56.         $post = new Post($request->all());
  57.         $post->save();
  58.         return view('admin.pages.posts.form', [
  59.             'post' => $post,
  60.             'categories' => Category::where('type', 'category')->where('parent_id', null)->get(),
  61.             'tags' => Category::where('type', 'tag')->get(),
  62.             'active' => 'Новая запись'
  63.         ]);
  64.     }
  65.    
  66.     /**
  67.      * Show the form for editing the specified resource.
  68.      *
  69.      * @param  int $id
  70.      * @return \Illuminate\Http\Response
  71.      */
  72.     public function edit($id)
  73.     {
  74.         $post = Post::withTrashed()->where('id', $id)->first();
  75.  
  76.         return view('admin.pages.posts.form', [
  77.             'post' => $post,
  78.             'categories' => Category::where('type', 'category')->where('parent_id', null)->get(),
  79.             'tags' => Category::where('type', 'tag')->get(),
  80.             'active' => $post->title ? $post->title : 'Новая запись'
  81.         ]);
  82.     }
  83.  
  84.     /**
  85.      * Update the specified resource in storage.
  86.      *
  87.      * @param  \Illuminate\Http\Request $request
  88.      * @param  int $id
  89.      * @return \Illuminate\Http\Response
  90.      */
  91.     public function update(Request $request, $id)
  92.     {
  93.         $post = Post::withTrashed()->where('id', $id)->first();
  94.         $post->fill($request->all());
  95.  
  96.         $post->categories()->sync($request->categories);
  97.  
  98.         if(isset($request->image)){
  99.             if($post->miniature()) {
  100.                 ImageController::deleteImage($post->miniature()->id);
  101.             }
  102.             ImageController::uploadImage('miniature', 'post', $id, $request->image);
  103.         }
  104.  
  105.         if(isset($request->gallery)){
  106.             ImageController::massiveUpload($request, 'gallery', 'gallery','post', $id);
  107.         }
  108.  
  109.         if(isset($request->img_delete)){
  110.             ImageController::massiveDelete($request->img_delete);
  111.         }
  112.         $post->save();
  113.  
  114.         return redirect(route('posts.edit', $post->id));
  115.     }
  116.  
  117.     /**
  118.      * Remove the specified resource from storage.
  119.      *
  120.      * @param  int $id
  121.      * @return \Illuminate\Http\Response
  122.      */
  123.     public function destroy($id)
  124.     {
  125.         $post = Post::withTrashed()->where('id', $id)->first();
  126.         $type = $post->type;
  127.         if ($post->trashed()) {
  128.             $post->forceDelete();
  129.             return redirect(route('posts.index', ['type' => $type]));
  130.         } else {
  131.             $post->delete();
  132.             return Redirect::back();
  133.         }
  134.     }
  135.  
  136.     /**
  137.      * Restore deleted post.
  138.      *
  139.      * @param  int $id
  140.      * @return \Illuminate\Http\Response
  141.      */
  142.     public function restore($id)
  143.     {
  144.         $post = Post::withTrashed()->where('id', $id)->first();
  145.         $post->restore();
  146.         return Redirect::back();
  147.     }
  148. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement