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/Hospital.php
<?php
namespace App\Models;

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

class Hospital extends Model
{
    protected $with = ['media', 'testimonials', 'specialities'];

    protected $hidden = ['published_at', 'created_by', 'updated_by', 'created_at', 'updated_at'];

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

    public function testimonials() {
        return $this->hasMany(Testimonial::class, 'Hospital');
    }

    public function getYoutubeLinkAttribute($value)
    {
        if (!is_null($value) && $value != '') {
            $video_id = explode('?v=', $value);

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

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

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

            if (empty($video_id[1])) {
                if (strpos($value, '/') !== false) {
                    $video_id = end(explode('/', $value));
                    $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;
        } else {
            return null;
        }
    }

    public function doctors()
    {
        return $this->belongsToMany(
            Doctor::class,
            'doctors__hospitals',
            'hospital_id',
            'doctor_id'
        )->orderBy('Weight', 'ASC');
    }

    public function specialities()
    {
        return $this->belongsToMany(
            Speciality::class,
            'hospitals__specialities',
            'hospital_id',
            'speciality_id'
        );
    }

    public function technologies()
    {
        return $this->belongsToMany(
            Technology::class,
            'hospitals__technologies',
            'hospital_id',
            'technology_id'
        )->select([
            'technologies.id',
            'technologies.Title',
            'technologies.Description',
            'technologies.ShortDescription',
            'technologies.Slug',
            'technologies.Weight',
        ])
            ->orderBy('technologies.Weight', 'ASC');
    }

    public function media()
    {
        return $this->hasOneThrough(
            Media::class,
            MediaMorph::class,
            'related_id',
            'id',
            'id',
            'upload_file_id'
        )
            ->where('related_type', 'hospitals')
            ->where('field', 'Photo')
            ->orderBy('order')
            ->select('upload_file.id', 'name', 'url', 'formats');
    }

    public function career()
    {
        return $this->belongsToMany(
            Career::class,
            'career_job_posts__localities',
            'hospital_id',
            'career_job_post_id',
        );
    }

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