osb/app/Models/Base/ServiceType.php

46 lines
918 B
PHP
Raw Normal View History

<?php
namespace App\Models\Base;
use Illuminate\Database\Eloquent\Model;
2019-06-29 00:14:12 +00:00
use App\Models\Service;
abstract class ServiceType extends Model
{
public $timestamps = FALSE;
public $dateFormat = 'U';
/**
* @NOTE: The service_id column could be discarded, if the id column=service_id
* @return \Illuminate\Database\Eloquent\Relations\MorphOne
*/
public function service()
{
return $this->morphOne(Service::class,'type','model','id');
}
2019-06-29 00:14:12 +00:00
/** SCOPES */
/**
* Search for a record
*
* @param $query
* @param string $term
* @return
*/
public function scopeSearch($query,string $term)
{
return $query
->with(['service'])
->join('ab_service','ab_service.id','=',$this->getTable().'.service_id')
->Where('ab_service.id','like','%'.$term.'%');
}
/** ATTRIBUTES **/
public function getTypeAttribute()
{
return strtolower((new \ReflectionClass($this))->getShortName());
}
}