| Path : /var/www/html/phkaynews-v2/app/Http/Controllers/Admin/ |
|
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]);
}
}