HEX
Server: Apache/2.4.46 (Ubuntu)
System: Linux localhost 5.11.0-49-generic #55-Ubuntu SMP Wed Jan 12 17:36:34 UTC 2022 x86_64
User: root (0)
PHP: 7.4.16
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/sarvodayahospital/app/Http/Controllers/CPSController.php
<?php

namespace App\Http\Controllers;

use App\Models\CPSDoctor;
use App\Models\Doctor;
use Illuminate\Http\Request;

class CPSController extends Controller
{
    public function index()
    {
        $doctors = Doctor::query()
            ->orderByRaw('ISNULL(Weight), Weight ASC')
            ->orderBy('Surname', 'asc')
            ->paginate(21);

        return view('pages.cps-doctor', compact('doctors'));
    }

    public function getDoctorByTreatment($treatment = null, $location, $slug) {
        if($treatment && $treatment == 'treatment') {
            $treatment = 'Condition';
        }

        $cpsDoctor = CPSDoctor::query()
            ->with('cpsLocation')
            ->where('Slug', $slug)
            ->where('PageType', $treatment)
            ->firstOrFail();

        $specialities = $cpsDoctor->specialities()->get();

        $cpsLocations = $cpsDoctor->cpsLocation()->first()->load('hospitals');

        if(!is_null($cpsLocations)) {
            $hospitals = $cpsLocations->hospitals->map(function($query) {
                return $hospitalID[] = $query->id;
            });
        }

        $doctors = Doctor::getDoctorBySpecialityAndHospital($specialities->pluck('id'), $hospitals);

        $commonTreatmentDoctors = CPSDoctor::query()
                ->with('cpsLocation')
                ->whereHas('cpsLocation', function($query) use($location) {
                    $query->where('Slug', $location);
                })
                ->where('Slug', '!=' ,$slug)
                ->where('PageType', $treatment)
                ->get();

        $sameSpecialityWithDiffLocationDoctors =  CPSDoctor::query()
            ->with('cpsLocation')
            ->where('Title', $cpsDoctor->Title)
            ->where('Slug', '!=', $slug)
            ->where('PageType', $treatment)
            ->get();


        $data = [
            'cpsDoctors' => $cpsDoctor,
            'specialities' => $specialities,
            'doctors' => $doctors,
            'commonTreatmentDoctors' => $commonTreatmentDoctors,
            'sameSpecialityWithDiffLocationDoctors' => $sameSpecialityWithDiffLocationDoctors
        ];

        return view('pages.cps-doctor', compact('data'));
    }
}