KUJUNTI.ID MINISH3LL
Path : /var/www/html/phkaynews-v2/app/Http/Controllers/Admin/
(S)h3ll Cr3at0r :
F!le Upl0ad :

B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H

Current File : /var/www/html/phkaynews-v2/app/Http/Controllers/Admin/PostController.php


<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use App\Models\Category;
use App\Models\Post;
use App\Models\PostCategory;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

// use Illuminate\Support\Facades\Mail;
// use App\Mail\PostMail;
class PostController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Http\Response
     */

    public function store(Request $request)
    {
        $datas = $request->all();
        // dd($datas)
        if ($request->hasFile('feature_image')) {
            $datas['feature_image'] = $this->uploadImage($request);
        }
        $datas['user_id'] = Auth::user()->id;
        if ($request->public) {
			$datas['public'] = 1;
		} else {
			$datas['public'] = 0;
        }
        $post = Post::create($datas);
        if (isset($datas['category_ids'])) {
            foreach ($datas['category_ids'] as $cat) {
                // insert item
                PostCategory::create(['post_id' => $post->id, 'category_id' => $cat]);
            }
        }
        return redirect()->route('admin.posts.index')->with('success', 'Post saved successfully.');
    }

    public function index()
    {
        $posts = Post::orderBy('id', 'desc')->paginate(20);
        return view('admin.post.postList', ['posts' => $posts]);
    }

    public function create()
    {
        $categories = Category::orderBy("name")->get();

        return view('admin.post.postForm', ['categories' => $categories]);
    }

    public function edit($id)
    {
        $post = Post::where("id", $id)->first();

        $categories = Category::orderBy("name")->get();
        return view('admin.post.postForm', ['post' => $post, 'categories' => $categories]);
    }

    public function update(Request $request, $id)
    {
        $post = Post::findOrFail($id);
        $datas = $request->all();
        $existing_categories = $post->post_categories->pluck('category_id')->toArray();
        // $selected_categories = $datas['category_ids'];
        // check to add new cat
        if (isset($datas['category_ids'])) {
            foreach ($datas['category_ids'] as $cat) {
                // insert item
                if (!in_array($cat, $existing_categories)) {
                    PostCategory::create(['post_id' => $post->id, 'category_id' => $cat]);
                }
            }
        }
        // check to remove old cat
        foreach ($existing_categories as $cat) {
            if (!in_array($cat, $datas['category_ids'])) {
                $pc = PostCategory::where("post_id", $post->id)->where("category_id", $cat)->firstOrFail();
                $pc->delete();
            }
        }

        if ($request->hasFile('feature_image')) {
            $datas['feature_image'] = $this->uploadImage($request);
        }
        if ($request->public) {
			$datas['public'] = 1;
		} else {
			$datas['public'] = 0;
        }
        $post->update($datas);
        return redirect()->route('admin.posts.index')->with('success', 'Post have been updated successfully');
    }

    public function destroy($id)
    {
        $post = Post::findOrFail($id);
        $post->delete();

        return redirect()->route('admin.posts.index')->with('success', 'Post have been deleted successfully');
    }

    public function show(Request $request)
    {
        return redirect()->route('admin.posts.index');
    }
    private function uploadImage(Request $request)
    {
        $image = $request->file('feature_image');
        $name = time() . '.' . $image->getClientOriginalName();

        $destinationPath = public_path('images/');
        $image->move($destinationPath, $name);
        return 'images/' . $name;
    }

    public function search(Request $request)
    {
        $posts = Post::where('title','like','%'.$request->q.'%')->orderBy('id','desc')->paginate(20);
        return view('admin.post.postList',['posts' => $posts,'q' => $request->q]);
    }
}

© KUJUNTI.ID