Introduzione
Quando costruisci un’API in Laravel, spesso devi convertire modelli e relazioni in array o JSON. Eloquent include metodi comodi per queste conversioni e funzionalità per controllare quali attributi includere nella rappresentazione serializzata del modello.Per una serializzazione JSON più robusta di modelli e collezioni Eloquent, consulta la documentazione delle Eloquent API Resource.
Modelli e array
Serializzazione in array
Per convertire un modello e le relazioni caricate in un array usa il metodotoArray.
Il metodo lavora ricorsivamente, quindi tutti gli attributi e tutte le relazioni (incluse le relazioni delle relazioni) vengono convertiti in array.
attributesToArray converti in array i soli attributi del modello, escludendo le relazioni.
toArray sull’istanza della collection.
Serializzazione in JSON
Per convertire un modello in JSON usa il metodotoJson.
Come toArray, anche toJson è ricorsivo: tutti gli attributi e le relazioni vengono convertiti in JSON.
Puoi indicare le opzioni di codifica JSON supportate da PHP.
toJson.
Relazioni
Quando un modello Eloquent viene convertito in JSON, le relazioni caricate vengono incluse automaticamente come attributi dell’oggetto JSON. Inoltre, i metodi di relazione Eloquent sono definiti in “camelCase” ma gli attributi JSON delle relazioni sono in “snake_case”.Controllo della visibilità degli attributi
Nascondere attributi
Potresti voler limitare gli attributi (come le password) inclusi nella rappresentazione ad array o JSON del modello. Per farlo usa l’attributeHidden sul modello.
Gli attributi elencati non appariranno nella rappresentazione serializzata.
Per nascondere una relazione, aggiungi il nome del metodo della relazione all’attribute
Hidden del modello.Rendere visibili attributi
Con l’attributeVisible puoi definire un “elenco di consentiti” degli attributi che devono comparire nella rappresentazione ad array e JSON del modello.
Tutti gli attributi non presenti in Visible vengono nascosti quando il modello viene convertito in array o JSON.
Visibilità temporanea di attributi
Per rendere visibile su una singola istanza un attributo normalmente nascosto usamakeVisible o mergeVisible.
makeVisible restituisce l’istanza del modello.
makeHidden o mergeHidden.
setVisible e setHidden.
Attributi aggiuntivi
Quando converti un modello in array o JSON, potresti voler aggiungere attributi che non hanno una colonna corrispondente nel database. Per farlo definisci prima un accessor per il valore.Appends sul modello.
Anche se il metodo PHP dell’accessor è in “camelCase”, il nome dell’attributo di norma nella rappresentazione serializzata è in “snake_case”.
appends, l’attributo è incluso nella rappresentazione ad array e JSON del modello.
Anche gli attributi in appends rispettano le impostazioni visible e hidden del modello.
Aggiunta a runtime
A runtime puoi indicare all’istanza del modello di aggiungere attributi con i metodiappend o mergeAppends.
Con setAppends puoi sovrascrivere l’intero array di proprietà appended per una specifica istanza.
withoutAppends.
Serializzazione delle date
Personalizzare il formato predefinito delle date
SovrascrivendoserializeDate puoi personalizzare il formato predefinito di serializzazione.
Questo metodo non incide sul formato di salvataggio nel database.