34 lines
885 B
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);
|
|
}
|
|
}
|