Improved search performance
This commit is contained in:
@@ -88,9 +88,9 @@ class Service extends Model implements IDs
|
||||
];
|
||||
|
||||
protected $with = [
|
||||
'invoice_items',
|
||||
'product.type.supplied',
|
||||
'type',
|
||||
//'invoice_items',
|
||||
//'product.type.supplied',
|
||||
//'type',
|
||||
];
|
||||
|
||||
public const INACTIVE_STATUS = [
|
||||
@@ -455,7 +455,23 @@ class Service extends Model implements IDs
|
||||
*/
|
||||
public function scopeSearch($query,string $term)
|
||||
{
|
||||
return $query->where('id','like','%'.$term.'%');
|
||||
$t = '%'.$term.'%';
|
||||
|
||||
return $query->select('services.*')
|
||||
->where('services.id','like',$t)
|
||||
->leftJoin('service_broadband',['service_broadband.service_id'=>'services.id'])
|
||||
->orWhere('service_broadband.service_number','like',$t)
|
||||
->orWhere('service_broadband.service_address','like',$t)
|
||||
->orWhere('service_broadband.ipaddress','like',$t)
|
||||
->leftJoin('service_phone',['service_phone.service_id'=>'services.id'])
|
||||
->orWhere('service_phone.service_number','like',$t)
|
||||
->orWhere('service_phone.service_address','like',$t)
|
||||
->leftJoin('service_domain',['service_domain.service_id'=>'services.id'])
|
||||
->orWhere('service_domain.domain_name','like',$t)
|
||||
->leftJoin('service_email',['service_email.service_id'=>'services.id'])
|
||||
->orWhere('service_email.domain_name','like',$t)
|
||||
->leftJoin('service_host',['service_host.service_id'=>'services.id'])
|
||||
->orWhere('service_host.domain_name','like',$t);
|
||||
}
|
||||
|
||||
/* ATTRIBUTES */
|
||||
|
Reference in New Issue
Block a user