json资源和资源集合有什么区别?在Laravel

时间:2019-10-10 04:14:35

标签: php laravel eloquent laravel-6 laravel-eloquent-resource

有人可以解释ResourceCollection和JsonResource之间的区别吗?

在Laravel 6文档中,您可以生成2种不同类型的资源... ResourceCollection和JsonResource。 https://laravel.com/docs/6.x/eloquent-resources#resource-responses

<?php

namespace App\Http\Resources;

use Illuminate\Http\Resources\Json\ResourceCollection;

class ShopCollection extends ResourceCollection
{
    /**
     * Transform the resource collection into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function toArray($request)
    {
        return parent::toArray($request);
    }
}

vs ...

<?php

namespace App\Http\Resources;

use Illuminate\Http\Resources\Json\JsonResource;

class Shop extends JsonResource
{
    /**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function toArray($request)
    {
        return parent::toArray($request);
    }
}

1 个答案:

答案 0 :(得分:1)

当您将单个模型转换为json(即json资源)时,当您将模型的集合转换为json(即资源集合)时。

简单地,如果您要返回资源集合或作为集合的分页响应。

请参见documentation

  

要生成可转换单个模型的资源,您可以   生成负责转换集合的资源   模型。这使您的回复可以包含链接和其他元   与给定的整个集合相关的信息   资源。