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/Models/DoctorVideo.php
<?php

namespace App\Models;

use App\Scopes\isPublishedScope;
use Illuminate\Database\Eloquent\Model;

class DoctorVideo extends Model
{
    protected $with = ['specialities', 'doctors'];

    protected static function booted()
    {
        return static::addGlobalScope(new isPublishedScope());
    }

    public function getYoutubeURLAttribute()
    {
        $link = $this->YoutubeVideoCode;
        $video_id = explode('?v=', $link);

        if (empty($video_id[1])) {
            $video_id = explode('?vi=', $link);
        }
        if (empty($video_id[1])) {
            $video_id = explode('/v/', $link);
        }
        if (empty($video_id[1])) {
            $video_id = explode('/vi/', $link);
        }

        if (empty($video_id[1])) {
            $video_id = explode('/embed/', $link);
        }

        if (empty($video_id[1])) {
            $video_id = explode('/shorts/', $link);
        }
        if (empty($video_id[1])) {
            $video_id = explode('youtu.be/', $link);
        }

        if (empty($video_id[1])) {
            if (strpos($link, '/') !== false) {
                $video_id = end(explode('/', $link));
                $video_id = explode('?', $video_id); // Deleting any other params

                if (is_array($video_id)) {
                    $video_id = $video_id[0];
                }

                return $video_id;
            }
        }
        if (is_array($video_id)) {
            $video_id = explode('?', $video_id[1]); // Deleting any other params

            if (is_array($video_id)) {
                $video_id = $video_id[0];
            }

            $video_id = explode('&', $video_id); // Deleting any other params
            if (is_array($video_id)) {
                $video_id = $video_id[0];
            }
        }

        return $video_id;
    }

    public function specialities()
    {
        return $this->belongsTo(Speciality::class, 'Speciality', 'id')
            ->select('id', 'SpecialityName', 'Slug');
    }

    public function doctors()
    {
        return $this->belongsTo(Doctor::class, 'Doctor', 'id');
    }

    public function seoComponent()
    {
        return $this->hasOneThrough(
            SEOComponent::class,
            DoctorVideoComponent::class,
            'doctor_video_id',
            'id',
            'id',
            'component_id'
        )
        ->where('field', 'SEO')
        ->where('component_type', 'components_seo_seos');
    }
}