• File: JcategoryController.php
  • Full Path: /home/masbinta/public_html/core/app/Http/Controllers/Admin/JcategoryController.php
  • File size: 2.83 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php

namespace App\Http\Controllers\Admin;

use App\Models\Language;
use App\Models\Jcategory;
use Illuminate\Support\Str;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class JcategoryController extends Controller
{
    public $lang;
    public function __construct()
    {
        $this->lang = Language::where('is_default',1)->first();
    }


    public function jcategory (Request $request){

        $lang = Language::where('code', $request->language)->first()->id;
        $jcategories  = Jcategory::where('language_id',$lang)->orderBy('id', 'desc')->get();
        return view('admin.job.job-category.index', compact('jcategories'));
    }


    public function add(){

        return view('admin.job.job-category.add');
    }


    public function store(Request $request){

        $request->validate([
            'name' => 'required|unique:jcategories|max:150',
            'language_id' => 'required',
            'status' => 'required',
        ]);

        $jcategory = new Jcategory();

        $jcategory->language_id = $request->language_id;
        $jcategory->name = $request->name;
        $jcategory->slug = Str::slug($request->name, "-");
        $jcategory->status = $request->status;
        $jcategory->save();

        
        $notification = array(
            'messege' => 'Job Category Added successfully!',
            'alert' => 'success'
        );
        return redirect()->back()->with('notification', $notification);

    }


    public function delete($id){

        $jcategory = Jcategory::findOrFail($id);
        if($jcategory->jobs->count() > 0){
            foreach($jcategory->events as $data){
                $data->delete();
            }
        }

        $jcategory->delete();

        $notification = array(
            'messege' => 'Job Category Deleted successfully!',
            'alert' => 'success'
        );
        return redirect()->back()->with('notification', $notification);
    }


    public function edit($id){

        $jcategory = jcategory::find($id);
        return view('admin.job.job-category.edit', compact('jcategory'));

    }

    public function update(Request $request, $id){

        $id = $request->id;
        $request->validate([
            'name' => 'required|unique:jcategories,name,'.$id,
            'status' => 'required',
        ]);

        $jcategory = Jcategory::find($id);
        $jcategory->language_id = $request->language_id;
        $jcategory->name = $request->name;
        $jcategory->slug = Str::slug($request->name, "-");
        $jcategory->status = $request->status;
        $jcategory->save();


        
        $notification = array(
            'messege' => 'Job Category Updated successfully!',
            'alert' => 'success'
        );
        return redirect(route('admin.jcategory').'?language='.$this->lang->code)->with('notification', $notification);
    }
}