ORM

ORM — Active Record

Model Active Record (\Blumiga\orm\Model) com suporte a relacionamentos e Soft Deletes.

Definição

use Blumiga\orm\Model;

class User extends Model
{
    protected string $table = 'users';
}

Operações

// Buscar
$user = User::find(1);
$users = User::all();

// Criar
$user = User::create(['name' => 'João', 'email' => 'joao@email.com']);

// Atualizar
$user = User::find(1);
$user->name = 'João Atualizado';
$user->save();

// Remover
$user = User::find(1);
$user->delete();     // Deleta
User::destroy(1);    // Deleta pelo ID

Relacionamentos

class User extends Model
{
    public function posts(): HasMany
    {
        return $this->hasMany(Post::class, 'user_id');
    }

    public function profile(): HasOne
    {
        return $this->hasOne(Profile::class, 'user_id');
    }
}

class Post extends Model
{
    public function user(): BelongsTo
    {
        return $this->belongsTo(User::class, 'user_id');
    }
}

// Uso
$user = User::find(1);
$posts = $user->posts;
$post = Post::find(1);
$author = $post->user;

Soft Deletes

use Blumiga\orm\SoftDeletes;

class User extends Model
{
    use SoftDeletes;

    protected string $table = 'users';
}

// find() ignora deletados por padrão
// use withTrashed() para incluí-los