3

我使用 SilverStripe4 和 ModelAdmin 来管理 DataObjects。

DataObject 在 File 上有一个 has_one。到目前为止一切正常,但在前端控制器上,文件关系有一个空对象。

我看到该文件不在 File_Live 表中,所以我猜它没有发布,因此在前端控制器上找不到它。

如何从 ModelAdmin 发布文件关系?基本上,当文件上传时,它应该会自动发布。

我想如果我使用版本化的 DataObjects,我仍然需要这样的东西:https
://github.com/drzax/silverstripe-bits/tree/master/VersionedModelAdmin 在 ModelAdmin 上有发布机制。

或者 SS4 中有内置的东西吗?这也将级联到文件关系吗?

编辑: 关于版本化的 DataObjects,SS4 中有一个内置的发布按钮,只需使用:

private static $extensions = [
    Versioned::class,
];

private static $versioned_gridfield_extensions = true;
4

1 回答 1

4

您可以将以下内容添加到 DataObject:

private static $owns = ['FileRelationName'];

有关系的例子:

private static $has_one = ['File' => File::class];
private static $owns = ['File'];

以这种方式声明为“拥有”的任何相关对象都将与其DataObject自身一起发布。

于 2017-11-20T12:49:48.337 回答