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

谁能解释一下 ResourceCollection 和 JsonResource 之间的区别?

Can someone explain the difference between a ResourceCollection and JsonResource?

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

In Laravel 6 docs you can generate 2 different types of resources... ResourceCollection and JsonResource. https://laravel.com/docs/6.x/eloquent-resources#resource-responses

<?php

namespace AppHttpResources;

use IlluminateHttpResourcesJsonResourceCollection;

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

对...

<?php

namespace AppHttpResources;

use IlluminateHttpResourcesJsonJsonResource;

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

推荐答案

当你将单个模型转换为 json 时,即为 json 资源,当你将模型集合转换为 json 时,即为资源集合.

When you are converting a single model to json, that is a json resource, when you are converting a collection of model to json, that is resource collection.

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

simply If you are returning a collection of resources or a paginated response that is a collection.

请参阅文档

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

to generating resources that transform individual models, you may generate resources that are responsible for transforming collections of models. This allows your response to include links and other meta information that is relevant to an entire collection of a given resource.

相关文章