Générez puis complétez Book
aml make:entity Booksrc/models/Book.php
<?php
declare(strict_types=1);
namespace App\Models;
use AML\Data\Entity;
use AML\Data\Metadata\{Key, Table};
#[Table('books')]
final class Book extends Entity
{
#[Key]
public int $id;
public string $title;
public string $author;
}Lisez chaque élément
#[Table('books')]associe la classe à la table books
extends Entityrend la classe persistable par Data
#[Key]désigne la clé primaire
public string $titledécrit une valeur texte obligatoire
Pourquoi l’identifiant n’a pas de valeur ?
Avant l’insertion, le livre n’existe pas encore dans la table. La base génère sa clé; DbSet::add() la remet ensuite dans $book->id. Le même objet PHP connaît alors son identité persistée.
Une entité n’est pas une table
La classe décrit la forme côté PHP. La migration crée réellement la structure côté base. Les deux doivent rester cohérents.