Modelul minimal
Un model Leto este o clasă PHP simplă care extinde Leto\Database\ORM\Model.
<?php
use Leto\Database\ORM\Attributes\Table;
use Leto\Database\ORM\Attributes\PrimaryKey;
use Leto\Database\ORM\Attributes\AutoIncrement;
use Leto\Database\ORM\Attributes\DataStorage\Varchar;
use Leto\Database\ORM\Attributes\DataStorage\Integer;
use Leto\Database\ORM\Attributes\DataStorage\DateTime;
use Leto\Database\ORM\Model;
#[Table('users')]
class User extends Model
{
#[PrimaryKey]
#[AutoIncrement]
public int $id;
#[Varchar(100)]
public string $name;
#[Varchar(255)]
public string $email;
#[Integer]
public int $role_id;
#[DateTime]
public \DateTimeImmutable $created_at;
}Utilizare de bază
// Creare
$user = new User();
$user->name = 'Ion Popescu';
$user->email = 'ion@example.com';
$user->role_id = 1;
$user->create(); // salvează în baza de date
// Găsire după ID
$user = User::find(1);
// Interogare
$users = User::where('role_id', 1)
->orderBy('name')
->get();
// Actualizare
$user->name = 'Ion Ionescu';
$user->update();
// Ștergere
$user->delete();Atenție! Atributele PHP la nivel de clasă (
#[Table], #[ConnectionName]) NU se moștenesc: fiecare subclasă de Model trebuie să-și declare propriile #[Table] și #[ConnectionName]. În schimb, atributele de pe proprietăți (#[PrimaryKey], #[AutoIncrement], atributele de stocare și relații) sunt vizibile prin moștenire: dacă o clasă părinte declară #[PrimaryKey, AutoIncrement] public int $id;, subclasele nu trebuie să-l re-declare.Valori implicite pentru coloane
Pentru valori implicite la nivel de coloană (DEFAULT în schema bazei de date) ai atributele #[DefaultValue] și #[DefaultExpression]. Vezi Atribute pe clasă pentru detalii și exemple.