2013-03-24 8 views

Antwort

9

Response::json($someArray) ist eine generische Art und Weise JSON-Daten zurück.

return $model->toJson() ist spezifisch für die Rückgabe eines Modells als JSON. Dies wäre mein bevorzugter Ansatz bei der Arbeit mit einem Eloquent-Modell.

10

In # 1 konvertieren Sie zunächst Ihre Eloquent in ein Array, und dann konvertieren Sie es in JSON, die ein bisschen überflüssig scheint.

In diesem Sinne würde ich mit # 2 gehen, wenn Sie die JSON an den Anrufer zurückgeben.

Beachten Sie auch, dass in L4 jedes Mal, wenn ein Eloquent-Modell in eine Zeichenfolge umgewandelt wird, diese automatisch in JSON konvertiert wird. Daher können Sie wie aus der Dokumentation in diesem Beispiel tun JSON-Daten können Sie direkt aus Ihrer Route:

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

Weitere Informationen finden Sie http://four.laravel.com/docs/eloquent#converting-to-arrays-or-json

+0

Dies scheint bei mir: 'Der Antwortinhalt muss ein String sein oder ein Objekt __toString() Implementierung,„boolean“given.' – uruapanmexicansong

33

Die gesendeten aktuellen Daten ist die gleiche, aber ...

# 1 Sendet Content-Type:application/json an den Browser

# 2 Sendet Content-Type:text/html

# 1 ist korrekter, aber es hängt von Ihrem Javascript ab, sehen Sie: What is the correct JSON content type?

Jedoch ist es viel einfacher, das Modell einfach zurückzugeben. Es wird automatisch zurückgegeben, wie JSON und der Content-Type richtig eingestellt ist:

return $model; 
Verwandte Themen