【问题标题】:Laravel. Is there a way to pass an API Resource as a parameter?拉拉维尔。有没有办法将 API 资源作为参数传递?
【发布时间】:2019-12-24 22:54:15
【问题描述】:

我熟悉Laravel Api Resources 的用法,我将它用于单个元素,例如:

return new JsonResource($theResource)

对于具有以下特征的元素集合:

return JsonResource::Collection($theResources)

但现在我想将 jsonResource 传递给另一个类或方法并能够执行相同的操作,例如执行以下操作:

$theJsonResource->collection($theResources)

有没有办法做到这一点?

【问题讨论】:

    标签: php laravel laravel-6


    【解决方案1】:

    在 PHP 中,您可以将类作为字符串引用传递给方法或类,这将对您有所帮助。新关键字相当简单,使用静态调用你必须使用一些 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);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2017-07-04
      • 2018-05-11
      • 2018-08-25
      • 2017-07-10
      • 2017-01-30
      • 1970-01-01
      • 2021-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多