【问题标题】:Parsing includes for nested tranformers解析包括嵌套转换器
【发布时间】:2020-01-30 21:46:55
【问题描述】:

鉴于以下情况,我正在尝试弄清楚如何解析嵌套转换器的包含:

我有一个控制器,它设置我的 ArraySerializer,解析 OrderTransformer 的包含,然后创建数据:

$data = (new Manager())
    ->setSerializer(new ArraySerializer())
    ->parseIncludes('dispatches')
    ->createData(new Collection($orders, new OrderTransformer()));

在我的订单转换器中,我有从上面解析的包含调度:

class OrderTransformer
{
    protected $availableIncludes = [
        'dispatches',
    ];

    public function transform($order)
    {
        return [];
    }

    public function includeDispatches($order)
    {
        return $this->collection($order->getDispatches(), new DispatchesTransformer());
    }
}

然而,我卡住的地方是我的 DispatchesTransformer:

class DispatchesTransformer
{
    protected $avaiableIncludes = [
        'product',
    ];

    public function transform($order)
    {
        return [];
    }

    public function includeProduct()
    {
        // ...
    }
}

我有一个我想使用的可用包含产品。我不想让它成为默认包含。如何使用该包含?

我已经从我的控制器尝试过这样的事情:

->parseIncludes(['dispatches', 'product'])

【问题讨论】:

    标签: php transformer thephpleague-fractal


    【解决方案1】:

    这可以使用点符号来实现,如下所示:

    dispatches.product

    它实际上在包含数据下的文档中,我忽略了一些东西:https://fractal.thephpleague.com/transformers/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-04
      相关资源
      最近更新 更多