Anons79 Mini Shell

Directory : /home/aplikasiposinfo/.trash/app.4/Http/Controllers/
Upload File :
Current File : /home/aplikasiposinfo/.trash/app.4/Http/Controllers/TrainerClassController.php

<?php

namespace App\Http\Controllers;


use App\Models\Course;
use App\Models\Classes;
use App\Models\Trainer;
use Laracasts\Flash\Flash;
use App\Models\ClassTrainer;
use Illuminate\Http\Request;
use App\Models\CourseTrainer;
use Illuminate\Support\Facades\DB;
use App\Repositories\ClassRepository;
use RealRashid\SweetAlert\Facades\Alert;
use App\Http\Requests\CreateClassRequest;
use App\Http\Requests\UpdateClassRequest;
use App\Http\Controllers\AppBaseController;

class TrainerClassController extends AppBaseController
{
    /** @var ClassRepository $classRepository*/
    private $classRepository;

    public function __construct(ClassRepository $classRepo)
    {
        $this->middleware('permission:trainerClass.index', ['only' => ['index','show']]);
        $this->middleware('permission:trainerClass.create', ['only' => ['create','store']]);
        $this->middleware('permission:trainerClass.edit', ['only' => ['edit','update']]);
        $this->middleware('permission:trainerClass.destroy', ['only' => ['destroy']]);
        $this->classRepository = $classRepo;
    }

    // public function index(Request $request)
    // {
    //     // Mengambil ID trainer yang sedang login
    //     $trainerId = auth()->user()->trainer->id;

    //     // Mengambil courseId dari CourseTrainer berdasarkan trainerId
    //     $courseId = CourseTrainer::where('trainer_id', $trainerId)->first()->course_id;

    //     // Mengambil daftar kelas yang dimiliki oleh trainer berdasarkan courseId
    //     $classes = Classes::where('course_id', $courseId)->get();

    //     $title = 'Delete Data!';
    //     $text = "Are you sure you want to delete?";
    //     confirmDelete($title, $text);

    //     return view('web.dashboard_trainer.class.index', compact('classes'));
    // }

    public function index(Request $request)
    {
        // Mengambil ID trainer yang sedang login
        $trainerId = auth()->user()->trainer->id;

        // Mengambil courseId dari CourseTrainer berdasarkan trainerId
        $courseId = CourseTrainer::where('trainer_id', $trainerId)->first()->course_id;

        // Mengambil daftar kelas yang dimiliki oleh trainer berdasarkan courseId dan trainerId
        $classes = Classes::where('course_id', $courseId)
                          ->whereHas('classTrainers', function ($query) use ($trainerId) {
                              $query->where('trainer_id', $trainerId);
                          })
                          ->get();

        $title = 'Delete Data!';
        $text = "Are you sure you want to delete?";
        confirmDelete($title, $text);

        return view('web.dashboard_trainer.class.index', compact('classes'));
    }




    public function create()
    {
        // Mengambil ID trainer yang sedang login
        $trainerId = auth()->user()->id;

        $trainer = Trainer::where('users_id', $trainerId)->first();
        // Mengambil daftar kursus yang dimiliki oleh trainer_id tersebut
        $courses = CourseTrainer::where('trainer_id', $trainer->id)->pluck('course_id');

        // Mengambil daftar kursus berdasarkan id yang dimiliki oleh trainer
        $Course = Course::whereIn('id', $courses)->pluck('name', 'id');

        return view('web.dashboard_trainer.class.create', compact('Course'));
    }

    public function store(CreateClassRequest $request)
    {
        $input = $request->all();

        $class = $this->classRepository->create($input);

        Alert::success('Yipee!', 'Class Created Successfully');
        // Flash::success('Class saved successfully.');

        $trainerId = auth()->user()->trainer->id;

        // dd($trainerId);
        // Simpan relasi antara kelas yang baru dibuat dengan ID trainer yang sedang login
        $classTrainer = new ClassTrainer();
        $classTrainer->class_id = $class->id;
        $classTrainer->trainer_id = $trainerId;
        $classTrainer->save();

        return redirect(route('trainerClass.index'));
    }

    public function show($id)
    {
        $class = $this->classRepository->find($id);
        $Course=Course::find($id);

        if (empty($class)) {
            Flash::error('Class not found');

            return redirect(route('trainerClass.index'));
        }

        return view('web.dashboard_trainer.class.show', compact('Course'))->with('class', $class);
    }

    public function edit($id)
    {
        $class = $this->classRepository->find($id);
        $trainerId = auth()->user()->id;

        $trainer = Trainer::where('users_id', $trainerId)->first();
        // Mengambil daftar kursus yang dimiliki oleh trainer_id tersebut
        $courses = CourseTrainer::where('trainer_id', $trainer->id)->pluck('course_id');

        // Mengambil daftar kursus berdasarkan id yang dimiliki oleh trainer
        $Course = Course::whereIn('id', $courses)->pluck('name', 'id');

        if (empty($class)) {
            Flash::error('Class not found');

            return redirect(route('trainerClass.index'));
        }

        return view('web.dashboard_trainer.class.edit', compact('Course'))->with('class', $class);
    }

     /**
     * Update the specified Class in storage.
     */
    public function update($id, UpdateClassRequest $request)
    {
        $class = $this->classRepository->find($id);

        if (empty($class)) {
            Flash::error('Class not found');

            return redirect(route('trainerClass.index'));
        }

        $class = $this->classRepository->update($request->all(), $id);

        Flash::success('Class updated successfully.');

        return redirect(route('trainerClass.index'));
    }

    /**
     * Remove the specified Class from storage.
     *
     * @throws \Exception
     */


    public function destroy($id)
    {
        $class = $this->classRepository->find($id);

        if (empty($class)) {
            Flash::error('Class not found');

            return redirect(route('trainerClass.index'));
        }

        // Menghapus relasi ClassTrainer terlebih dahulu
        DB::table('class_trainer')->where('class_id', $id)->delete();

        // Menghapus data kelas
        $this->classRepository->delete($id);

        alert()->success('Hore!','Class Deleted Successfully');

        return redirect(route('trainerClass.index'));
    }



}

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]