JFIF  x x C         C     "        } !1AQa "q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz        w !1AQ aq"2B #3Rbr{ gilour

File "BlogCategoryController.php"

Full Path: /var/www/laravel_filter/Modules/Blog/Http/Controllers/BlogCategoryController.php
File size: 5.62 KB
MIME-type: text/x-php
Charset: utf-8

<?php

namespace Modules\Blog\Http\Controllers;

use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Modules\Blog\Entities\BlogCategory;
use Modules\Blog\Entities\Blog;
use Modules\Blog\Entities\BlogCategoryTranslation;
use Modules\Language\Entities\Language;
use Session;

class BlogCategoryController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth:admin');
    }

    public function index()
    {
        $categories = BlogCategory::with('translate')->get();

        return view('blog::blog_category',compact('categories'));
    }

    public function create()
    {
        return view('blog::create_blog_category');
    }

    public function store(Request $request)
    {
        $rules = [
            'name'=>'required|unique:blog_category_translations',
            'slug'=>'required|unique:blog_categories',
            'status'=>'required',
        ];
        $customMessages = [
            'name.required' => trans('admin_validation.Name is required'),
            'name.unique' => trans('admin_validation.Name already exist'),
            'slug.required' => trans('admin_validation.Slug is required'),
            'slug.unique' => trans('admin_validation.Slug already exist'),
        ];
        $request->validate($rules,$customMessages);

        $category = new BlogCategory();
        $category->slug = $request->slug;
        $category->status = $request->status;
        $category->save();

        $languages = Language::all();
        foreach($languages as $language){
            $category_translation = new BlogCategoryTranslation();
            $category_translation->lang_code = $language->lang_code;
            $category_translation->blog_category_id = $category->id;
            $category_translation->name = $request->name;
            $category_translation->save();
        }

        $notification= trans('admin_validation.Created Successfully');
        $notification=array('messege'=>$notification,'alert-type'=>'success');
        return redirect()->route('admin.blog-category.edit', ['blog_category' => $category->id, 'lang_code' => admin_lang()])->with($notification);
    }

    public function edit(Request $request, $id)
    {
        $category = BlogCategory::findOrFail($id);
        $cat_translate = BlogCategoryTranslation::where(['blog_category_id' => $id, 'lang_code' => $request->lang_code])->first();

        return view('blog::edit_blog_category',compact('category','cat_translate'));
    }


    public function update(Request $request,$id)
    {
        $category = BlogCategory::findOrFail($id);

        if($request->lang_code == admin_lang()){
            $rules = [
                'name'=>'required',
                'slug'=> 'required|unique:blog_categories,slug,'.$category->id,
                'status'=>'required',
            ];
            $customMessages = [
                'name.required' => trans('admin_validation.Name is required'),
                'name.unique' => trans('admin_validation.Name already exist'),
                'slug.required' => trans('admin_validation.Slug is required'),
                'slug.unique' => trans('admin_validation.Slug already exist'),
            ];
            $request->validate($rules,$customMessages);

            $category = BlogCategory::find($id);
            $category->slug = $request->slug;
            $category->status = $request->status;
            $category->save();

            $category_translation = BlogCategoryTranslation::findOrFail($request->translate_id);
            $category_translation->name = $request->name;
            $category_translation->save();

        }else{
            $rules = [
                'name'=>'required',
            ];
            $customMessages = [
                'name.required' => trans('admin_validation.Name is required'),
            ];
            $request->validate($rules,$customMessages);

            $category_translation = BlogCategoryTranslation::findOrFail($request->translate_id);
            $category_translation->name = $request->name;
            $category_translation->save();
        }

        $notification= trans('admin_validation.Update Successfully');
        $notification=array('messege'=>$notification,'alert-type'=>'success');
        return redirect()->back()->with($notification);
    }

    public function destroy($id)
    {
        $blog_count = Blog::where('blog_category_id', $id)->count();
        if($blog_count > 0){
            $notification= trans('admin_validation.You can not delete this category, multiple blog available under this category');
            $notification=array('messege'=>$notification,'alert-type'=>'error');
            return redirect()->route('admin.blog-category.index')->with($notification);
        }

        $category = BlogCategory::find($id);
        $category->delete();

        BlogCategoryTranslation::where('blog_category_id', $id)->delete();

        $notification= trans('admin_validation.Delete Successfully');
        $notification=array('messege'=>$notification,'alert-type'=>'success');
        return redirect()->route('admin.blog-category.index')->with($notification);
    }

    public function assign_language($lang_code){
        $cat_translates = BlogCategoryTranslation::where('lang_code', admin_lang())->get();
        foreach($cat_translates as $cat_translate){
            $blog_cat_translate = new BlogCategoryTranslation();
            $blog_cat_translate->lang_code = $lang_code;
            $blog_cat_translate->blog_category_id = $cat_translate->blog_category_id;
            $blog_cat_translate->name = $cat_translate->name;
            $blog_cat_translate->save();
        }
    }

}