阅读(2424) (0)

Laravel 8 自定义基础资源类

2021-07-08 09:45:04 更新

通常,资源集合的 $this->collection 属性会自动填充,结果是将集合的每个项映射到其单个资源类。假定单一资源类是集合的类名,但结尾没有 Collection 字符串。

例如,UserCollection 会尝试将给定的用户实例映射到 User 资源。若要自定义此行为,你可以重写资源集合的 $collects 属性:

<?php

namespace App\Http\Resources;

use Illuminate\Http\Resources\Json\ResourceCollection;

class UserCollection extends ResourceCollection
{
    /**
     * collects 属性定义了资源类
     *
     * @var string
     */
    public $collects = 'App\Http\Resources\Member';
}