ultimatepos/app/Traits/ScopesByBusiness.php

34 lines
885 B
PHP

<?php
namespace App\Traits;
use App\Scopes\BusinessScope;
use Illuminate\Database\Eloquent\Builder;
trait ScopesByBusiness
{
public static function bootScopesByBusiness(): void
{
static::addGlobalScope(new BusinessScope);
}
public function scopeForBusiness(Builder $query, int $businessId): Builder
{
return $query->where($this->getTable().'.business_id', $businessId);
}
public static function findForBusiness(int $id, int $businessId): ?static
{
return static::withoutGlobalScope(BusinessScope::class)
->where('business_id', $businessId)
->find($id);
}
public static function findForBusinessOrFail(int $id, int $businessId): static
{
return static::withoutGlobalScope(BusinessScope::class)
->where('business_id', $businessId)
->findOrFail($id);
}
}