Laravel 返回 JSON 格式

Posted 花生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel 返回 JSON 格式相关的知识,希望对你有一定的参考价值。

 

第一种方法: 

第一步、编写 BaseRequest
首先我们需要构建一个 BaseRequest 来重写 IlluminateHttpRequest ,修改为默认优先使用 JSON 响应:

app/Http/Requests/BaseRequest.php

<?php
namespace AppHttpRequests;

use IlluminateHttpRequest;
class BaseRequest extends Request
{
    public function expectsJson()
    {
        return true;
    }
    public function wantsJson()
    {
        return true;
    }
}

  

第二步、替换 BaseRequest
在 public/index.php 文件中,将 IllumiateHttpRequest 替换为我们的 BaseRequest,如下:

$response = $kernel->handle(
    $request = AppHttpRequestsBaseRequest::capture()
);

  

 

第二种方法:

使用中间件

namespace AppHttpMiddleware;

use Closure;

class ForceJson
{
    /**
     * Handle an incoming request.
     *
     * @param  IlluminateHttpRequest $request
     * @param  Closure $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $request->headers->set(‘accept‘, ‘application/json‘);

        return $next($request);
    }
}

  

Kernel.php 加入

‘force-json‘ => AppHttpMiddlewareForceJson::class,

 修改 routes/api.php

Route::group([‘middleware‘ => [‘force-json‘, ‘auth:api‘]], function () {
    // put your router
});

  

 



以上是关于Laravel 返回 JSON 格式的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 以 json 格式显示/返回数据,而不是以 html 格式显示/返回数据

如何返回格式化(漂亮)JSON 而不是 JSON?还是换行 JSON 而不是内联 JSON?(Laravel)

Laravel 返回 JSON 格式

让 Laravel 返回 JSON

Laravel-自定义API返回的JSON格式

如何以 json laravel 的形式返回分页