ScopedBy
Apply global scope(s) to the model
Description: Applies one or more global scopes to the model automatically.
Namespace: Illuminate\Database\Eloquent\Attributes\ScopedBy
Usage
use Illuminate\Database\Eloquent\Attributes\ScopedBy;
use Illuminate\Database\Eloquent\Model;
use App\Models\Scopes\ActiveScope;
use App\Models\Scopes\PublishedScope;
#[ScopedBy([ActiveScope::class, PublishedScope::class])]
class Post extends Model
{
}
// App\Models\Scopes\ActiveScope
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Scope;
class ActiveScope implements Scope
{
public function apply(Builder $builder, Model $model): void
{
$builder->where('is_active', true);
}
}