ModelAdmin中的Silverstripe文件关系不会发布

时间:2017-11-20 12:37:04

标签: silverstripe silverstripe-4

我使用SilverStripe4和ModelAdmin来管理DataObjects。

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

我看到该文件不在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;

1 个答案:

答案 0 :(得分:3)

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

private static $owns = ['FileRelationName'];

关系示例:

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

任何被声明为"拥有的相关对象"以这种方式将与DataObject本身一起发布。