php - updateorcreate - Devolviendo un modelo Eloquent como JSON en Laravel 4
updateorcreate laravel (3)
¿Cómo se devuelve un modelo Eloquent al navegador como JSON? ¿Cuál es la diferencia entre los dos métodos a continuación? Ambos parecen funcionar.
# 1:
return Response::json($user->toArray());
# 2:
return $user->toJson();
En el n. ° 1, primero convierte su Eloquent en una matriz, y luego lo convierte en JSON, lo que parece un poco redundante.
Con eso en mente, iría con el n. ° 2 si devuelve el JSON a la persona que llama.
También tenga en cuenta que, en L4, cada vez que un modelo Eloquent se convierte en una cadena, se convertirá automáticamente a JSON. Por lo tanto, puede hacer en este ejemplo de la documentación para devolver datos JSON directamente desde su ruta:
Route::get(''users'', function()
{
return User::all();
});
Para obtener más información, consulte http://four.laravel.com/docs/eloquent#converting-to-arrays-or-json
Los datos reales enviados son los mismos, sin embargo ...
# 1 Envía Content-Type:application/json
al navegador
# 2 Envía Content-Type:text/html
# 1 es más correcto, pero depende de tu Javascript, mira: ¿Cuál es el tipo de contenido JSON correcto?
Sin embargo, es mucho más simple simplemente devolver el modelo. Se devuelve automágicamente como JSON y el tipo de contenido está configurado correctamente:
return $model;
Response::json($someArray)
es una forma genérica de devolver datos JSON.
return $model->toJson()
es específico para devolver un modelo como JSON. Este sería mi enfoque preferido cuando trabaje con un modelo Eloquent.