【问题标题】:Laravel REST API route Problem in Resource file资源文件中的 Laravel REST API 路由问题
【发布时间】:2021-03-17 02:51:52
【问题描述】:
<?php

namespace App\Http\Resources\Product;

use Illuminate\Http\Resources\Json\JsonResource;

class ProductResource extends JsonResource
{
    /**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function toArray($request)
    {
        return [
        

            'href' => [
                'self' => route('reviews.index', $this->id),
            ]
        ];
    }
}

我的路线来了"href":{"self":"http:\/\/127.0.0.1:8000\/api\/products\/1\/reviews"} 像这样, 我要怎么解决?谢谢你

【问题讨论】:

    标签: laravel api laravel-8 rest


    【解决方案1】:

    这是由于 json 响应而发生的。 json 总是对代码进行编码,因此您可以使用 JSON_UNESCAPED_SLASHES 跳过 url 斜杠

    response()->json(..., 200, [], JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT);
    

    在laraveleloquent api resource也有同样的问题。最好的 将 json 选项应用于您的 Response 或 ResponseCollection 的方法是:

    public function withResponse($request, $response)
    {
        $response->setEncodingOptions(JSON_UNESCAPED_SLASHES);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-13
      • 1970-01-01
      • 2020-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多