Zend Framework 2 和 Apigility - 将 link 插入集合

Zend Framework 2 & Apigility - insert link into collection

我有一个具有 patchList 方法的 Apigility 资源。 该方法returns 一个集合。 我需要将 link 设置为返回集合中的另一个资源。

所以,如果一个集合看起来像这样:

{
  _links: {
    self: '//foo.bar',
  },
  _embedded: {
    foo: []
  }    
}

我希望它是这样的:

{
  _links: {
    self: '//foo.bar',
    bar: '//foo.bar/456'
  },
  _embedded: {
    foo: []
  }    
}

现在,我已经阅读了 the docs,并且了解了如何添加静态 link,但我需要动态设置 link。 我想我可能可以通过监听 renderCollection 事件来实现这一点,但我想知道是否有更简单的解决方案。

对于单个资源,您还可以使用 EntityExtractor 将自定义链接添加到 LinkCollection,但是对于渲染 Collection 不使用这样的提取器,所以您只能做动态添加它们是通过使用 renderCollection 事件,就像您在问题中已经建议的那样。