[英]Laravel. Is there a way to pass an API Resource as a parameter?
我熟悉Laravel Api Resources的用法,我將它用於單個元素,例如:
return new JsonResource($theResource)
以及具有以下元素的元素集合:
return JsonResource::Collection($theResources)
但是現在我想將一個 jsonResource 傳遞給另一個類或方法並能夠執行相同的操作,例如執行以下操作:
$theJsonResource->collection($theResources)
有沒有辦法做到這一點?
在 PHP 中,您可以將類作為字符串引用傳遞給方法或類,這將對您的情況有所幫助。 New 關鍵字相當簡單,對於靜態調用,您必須使用一些 PHP 技巧。
class ResponseBuilder
{
private $resource;
public function __construct($resource)
{
$this->resource = $resource;
}
public function buildRessource($resource)
{
return new $this->resource($resource);
}
public function buildRessources($resources)
{
return call_user_func($this->resource .'::Collection', $resources);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.