我可以在Silverstripe中管理与Gridfield(或类似对象)的has_one关系吗?

时间:2019-09-11 03:05:53

标签: silverstripe silverstripe-4

在Silverstripe项目中,我们有一个与第二个对象具有has_one关系的对象。次要对象具有多个has_one字段

class IceCream extends DataObject
{

  private static $has_one = [
    'Cone' => 'Cone'
  ]
}

class Cone extends DataObject
{
  private static $has_one = [
    'Size' => 'Size',
    'Pattern' => 'Pattern'
  ]

}

我们希望能够从CMS中的Cone对象编辑辅助对象IceCream。创建新的Cone记录或链接现有的Cone记录。

如果Conemany_many之间存在关系,我们可以将Gridfieldsymbiote/silverstripe-gridfieldextensions模块一起使用。并使用GridFieldAddExistingSearchButtonGridFieldAddNewInlineButton扩展名。

反正有这种行为可用于has_one关系吗?

我已经使用stevie-mayhew/hasoneedit模块进行了调查,但它似乎仅支持对has_one字段(在此示例中为SizePattern)进行内联编辑,并且没有似乎允许用户链接现有的Cone记录。

我们如何在CMS中创建一个字段,该字段允许用户链接或创建has_one记录-最好是内联或作为模式?

1 个答案:

答案 0 :(得分:2)

您可以使用几个模块来完成此操作。

我们的偏好是https://github.com/satrun77/silverstripe-hasoneselector,其他一些社区成员更喜欢使用https://github.com/silvershop/silverstripe-hasonefield,这也是相当广泛使用的https://github.com/gorriecoe/silverstripe-linkfield的依赖项。就支持而言,可能是更好的选择。