2013-03-24 25 views

risposta

9

Response::json($someArray) è un modo generico per restituire i dati JSON.

return $model->toJson() è specifico per la restituzione di un modello come JSON. Questo sarebbe il mio approccio preferito quando lavoro con un modello Eloquent.

10

In # 1 per la prima volta convertire il vostro Eloquente a un array, e poi si converte a JSON, che sembra un po 'ridondante.

Con questo in mente, mi piacerebbe andare con 2 # se si sta tornando il JSON al chiamante.

noti inoltre che, in L4, ogniqualvolta un modello eloquenti viene colato in una stringa verrà automaticamente convertito JSON. Quindi, si può fare come in questo esempio dalla documentazione per restituire i dati JSON direttamente dal vostro percorso:

Route::get('users', function() 
{ 
    return User::all(); 
}); 

Per ulteriori informazioni, vedere http://four.laravel.com/docs/eloquent#converting-to-arrays-or-json

+0

Ciò appare con me: 'Il contenuto di risposta deve essere una stringa o un oggetto attuazione __toString(), given.' "booleano" – uruapanmexicansong

33

I dati effettivi inviati è lo stesso, però ...

# 1 Invia Content-Type:application/json al browser

# 2 Invia Content-Type:text/html

# 1 è più corretto ma dipende dal tuo Javascript, vedi: What is the correct JSON content type?

Tuttavia, è molto più semplice restituire il modello. E 'automagicamente restituito come JSON e il Content-Type è impostato correttamente:

return $model; 
Problemi correlati