我熟悉Laravel Api Resources的用法,我已经将其用于单个元素,例如:
return new JsonResource($theResource)
以及具有以下元素的集合:
return JsonResource::Collection($theResources)
但是现在我想将jsonResource传递给另一个类或方法,并能够执行相同的操作,例如执行以下操作:
$theJsonResource->collection($theResources)
有没有办法做到这一点?
答案 0 :(得分:1)
在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);
}
}