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
UtiliseztoArray 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.
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.
toJson.
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’attributHidden. 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é, utilisezmakeVisible ou mergeVisible.
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.Appends sur le modèle.
La méthode PHP est en camelCase, mais l’attribut sérialisé utilise le snake_case.
appends figure à la fois dans le tableau et le JSON, tout en respectant visible/hidden.
Ajout à l’exécution
Utilisezappend, mergeAppends ou setAppends à l’exécution.
withoutAppends.
Sérialisation des dates
Format par défaut
RedéfinissezserializeDate pour changer le format par défaut.
Cela n’affecte pas le format de stockage en base.