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),
];
}