Laravel 响应:返回 JSON 数据 1 个改进

在控制器或者闭包路由里,如果返回数组或者模型(或者集合)的话,Laravel 会自动识别并自动转为 json 响应:

// 直接返回数组
Route::get('/request-json-array', function(){
    $array = array('foo', 'bar');

    // 返回的就是 json 响应
    return $array;
});

// 或者返回模型/集合
Route::get('/request-json-model', function(){
    // User 是 Eloquent 模型
    return User::all();
});

或者可以使用以下方法:

return response()->json(['name' => 'Abigail', 'state' => 'CA']);

使用 ->json() 的好处是可以自定义更多的响应信息,如状态码、头信息等。json() 方法的定义如下:

/**
* 返回一个新的 JSON 响应
*
* @param string|array $data
* @param int $status
* @param array $headers
* @param int $options
* @return \Symfony\Component\HttpFoundation\Response 
* @static 
*/
public static function json($data = array(), $status = 200, $headers = array(), $options = 0){

    return \Illuminate\Routing\ResponseFactory::json($data, $status, $headers, $options);
}
本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!