Php Laravel-指定为集合资源返回的字段

Php Laravel-指定为集合资源返回的字段,php,laravel,Php,Laravel,我有这样一个收集资源: class VehicleCollection extends ResourceCollection { /** * Transform the resource collection into an array. * * @param \Illuminate\Http\Request $request * @return array */ public function toArray($reques

我有这样一个收集资源:

class VehicleCollection extends ResourceCollection
{
    /**
     * Transform the resource collection into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function toArray($request)
    {
        return [
            'data' => $this->collection,
        ];
    }
}
我称之为,举个例子:

    public function index()
    {
        $vehicles = Vehicle::where('id', '>', 0);

        $collection = new VehicleCollection($vehicles->paginate(10));

        return $collection->preserveQuery();
    }
保留分页查询很重要,这就是为什么我没有使用
VechicleResource
-它没有
preserveQuery()
的选项


上面的操作很好,但返回的字段太多。例如,my
Vehicle
表有一个
车型名称
和一个
评级
列。如何在这里仅返回响应中每个模型的
model\u name
(或指定我返回的字段)?

您可以使用
VechicleResource::collection()
返回
匿名资源集合
匿名资源集合
扩展
资源集合
,因此,您可以调用
preserveQuery()
。然后,您可以选择/指定要在
VechicleResource
中发送的字段

public function toArray($request)
{
    return [
        'data' => VechicleResource::collection($this->collection),
    ];
}