Documentation · Chapitre 13

Travailler avec relations, migrations et données initiales.

Les relations décrivent les liens entre enregistrements. Les migrations font évoluer le schéma, les seeders créent un état reproductible et les diagnostics révèlent les capacités du serveur.

Chaque leçon part du problème, explique le mécanisme puis propose une vérification concrète.

Charger les relations sans requêtes N+1

HasMany, HasOne, BelongsTo et BelongsToMany décrivent les liens. with() regroupe le chargement anticipé et évite une requête supplémentaire pour chaque parent.

phpaml — zsh
$posts = $context->set(Post::class)
    ->with('author', 'comments')
    ->all();

aml data:migrate --connection main
aml data:seed --connection main

Faire évoluer le schéma par migrations

Schema et Table expriment des changements portables. Les verrous empêchent deux processus d’appliquer la même migration et une erreur nomme la migration ainsi que la direction.

Créer des données reproductibles et diagnostiquer

Les seeders s’exécutent en transaction et doivent produire des données déterministes. data:doctor rapporte pilote, connexion, version, transactions, savepoints, returning et clés étrangères sans révéler le mot de passe.