标签: laravel-eloquent-resource

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

有人可以解释 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);
    }
}

Run Code Online (Sandbox Code Playgroud)

对...

<?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 …
Run Code Online (Sandbox Code Playgroud)

php laravel eloquent laravel-eloquent-resource laravel-6

6
推荐指数
1
解决办法
3819
查看次数

Laravel Eloquent API 资源:从响应(集合)中删除“数据”键

我有 Eloquent API Resource UserResource。当我尝试运行这样的代码时:

$users = User::paginate(10);
return UserResource::collection($users);
Run Code Online (Sandbox Code Playgroud)

响应将是这样的:

{
    "data": [
        {
            "name": "Fatima Conroy",
            "email": "ocie.stark@example.org"
        },
        {
            "name": "John Doe",
            "email": "john.doe@example.org"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

如何删除data密钥或重命名它以获得类似此响应的内容?

[
    {
        "name": "Fatima Conroy",
        "email": "ocie.stark@example.org"
    },
    {
        "name": "John Doe",
        "email": "john.doe@example.org"
    }
]
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-eloquent-resource laravel-7

3
推荐指数
2
解决办法
1804
查看次数