File: /var/www/html/sarvodayahospital/app/Http/Controllers/DoctorVideoController.php
<?php
namespace App\Http\Controllers;
use App\Models\CMSPage;
use App\Models\DoctorVideo;
use App\Models\Speciality;
use Illuminate\Http\Request;
class DoctorVideoController extends Controller
{
public function index(Request $request)
{
$speciality = $request->speciality;
$strQuery = $request->q;
$seo = [];
$doctorVideos = DoctorVideo::query()
->when($speciality, function ($query) use ($speciality) {
$query->whereHas('specialities', function ($query) use ($speciality) {
$query->where('Slug', $speciality);
});
})
->when($strQuery, function ($query) use ($strQuery) {
$query->whereHas('doctors', function ($query) use ($strQuery) {
$query->where('DoctorName', 'like', '%' .$strQuery. '%')
->orWhere('Surname', 'like', '%' .$strQuery. '%');
})->whereHas('specialities', function ($speciality) use ($strQuery) {
$speciality->where('Slug', 'like', '%' .$strQuery. '%');
});
})
->orderBy('Date', 'DESC')
->paginate(24);
$specialities = Speciality::query()
->orderBy('Weight', 'ASC')
->get();
$cmsPage = CMSPage::query()
->where('Slug', request()->path())
->firstOrFail();
if ($cmsPage) {
$seo = $cmsPage->seoComponent()->first();
}
return view('pages.doctor-video', compact('doctorVideos', 'specialities', 'seo'));
}
public function show($slug) {
$seo = [];
$related_testimonials = [];
$testimonial = DoctorVideo::query()
->with('specialities')
->where('Slug', $slug)
->firstOrFail();
if ($testimonial) {
$specialities[] = $testimonial->specialities->id ?? null;
$related_testimonials = DoctorVideo::when(count($specialities), function($q) use($specialities) {
$q->whereHas('specialities', function($query) use($specialities) {
$query->whereIn('specialities.id', $specialities);
});
})
->where('id', '!=', $testimonial->id)
->take(5)
->get();
$seo = $testimonial->seoComponent()->first();
}
return view('pages.single-doctor-video', compact('testimonial', 'related_testimonials', 'seo'));
}
}