Skip to main content

Introduction

Lorsque vous construisez une API avec Laravel, il est fréquent de convertir un modèle et ses relations en tableau ou en JSON. Eloquent propose des méthodes pratiques pour ces conversions ainsi qu’un contrôle fin des attributs à inclure dans la représentation sérialisée.
Pour une sérialisation JSON plus robuste, consultez la documentation des Eloquent API Resources.

Modèles et tableaux

Vers un tableau

Utilisez toArray pour convertir le modèle et ses relations chargées en tableau. La méthode fonctionne récursivement : tous les attributs et toutes les relations (y compris les relations imbriquées) sont convertis.
attributesToArray ne convertit que les attributs, sans les relations.
Pour une collection entière, appelez toArray sur la collection.

Vers du JSON

toJson convertit le modèle en JSON. Comme toArray, elle fonctionne récursivement. Vous pouvez passer les options d’encodage JSON de PHP.
Le cast en chaîne appelle automatiquement toJson.
Les modèles et collections étant convertis en JSON à la conversion en chaîne, vous pouvez les retourner directement depuis les routes ou contrôleurs. Laravel sérialise automatiquement en JSON les modèles et collections Eloquent retournés.

Relations

Lors de la conversion en JSON, les relations chargées sont incluses automatiquement. Les méthodes de relation sont en camelCase, mais leurs clés JSON sont en snake_case.

Contrôle de la visibilité des attributs

Masquer des attributs

Vous voudrez limiter l’exposition de certains attributs (mot de passe, etc.). Utilisez l’attribut Hidden. Les attributs listés ne figurent pas dans la représentation sérialisée.
Pour cacher une relation, ajoutez le nom de la méthode de relation à Hidden.

Rendre visibles

Visible définit une liste d’autorisation. Tout attribut non listé est masqué.

Rendre visibles / masquer temporairement

Pour rendre visible un attribut normalement masqué, utilisez makeVisible ou mergeVisible.
À l’inverse, makeHidden ou mergeHidden masquent des attributs.
setVisible et setHidden remplacent complètement les listes.

Attributs supplémentaires

Vous pouvez ajouter à la sérialisation des attributs sans colonne correspondante en base. Définissez d’abord un accesseur.
Pour l’inclure automatiquement, utilisez l’attribut Appends sur le modèle. La méthode PHP est en camelCase, mais l’attribut sérialisé utilise le snake_case.
Un attribut listé dans appends figure à la fois dans le tableau et le JSON, tout en respectant visible/hidden.

Ajout à l’exécution

Utilisez append, mergeAppends ou setAppends à l’exécution.
Retirez tous les appends avec withoutAppends.

Sérialisation des dates

Format par défaut

Redéfinissez serializeDate pour changer le format par défaut. Cela n’affecte pas le format de stockage en base.

Format par attribut

Précisez le format dans la déclaration de cast.
Dernière modification le 20 juillet 2026