lumite-studios/model-scopes

A trait to add a specific model scopes.

v1.4 2022-07-12 08:43 UTC

This package is auto-updated.

Last update: 2024-05-12 14:33:05 UTC


README

A trait to add various model scopes.

Installation

composer require lumite-studios/model-scopes

Usage

All Scopes

use LumiteStudios\ModelScopes\ModelScopes;

WhereIsModelScope

use LumiteStudios\ModelScopes\WhereIsModelScope;

class User extends Model {
    use WhereIsModelScope;
}
$user = User::first();
$user = User::whereIsModel($user)->first();

WhereHasModelScope

use LumiteStudios\ModelScopes\WhereHasModelScope;

class Post extends Model {
    use WhereHasModelScope;

    public function user()
    {
        return $this->belongsTo(User::class);
    }
}

class User extends Model {
    use WhereHasModelScope;

    public function posts()
    {
        return $this->hasMany(Post::class);
    }
}
$user = User::first();
$posts = Post::whereHasModel('user', $user)->get();

$post = Post::first();
$user = User::whereHasModel('posts', $post)->first();