簡體   English   中英

Laravel - 指定為集合資源返回的字段

[英]Laravel - specify fields returned for collection resource

我有一個這樣的收藏資源:

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()選項。

以上工作正常,但返回的字段太多。 例如,我的Vehicle表有一個model_name和一個rating列。 如何在此處的響應中僅返回每個model_name的模型名稱(或指定我返回的字段)?

您可以使用返回AnonymousResourceCollectionAnonymousResourceCollectionVechicleResource::collection()擴展ResourceCollection ,因此您可以調用preserveQuery() 然后您可以在VechicleResource中選擇/指定要發送的字段。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM