我使用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;
答案 0 :(得分:3)
您可以将以下内容添加到DataObject:
private static $owns = ['FileRelationName'];
关系示例:
private static $has_one = ['File' => File::class];
private static $owns = ['File'];
任何被声明为"拥有的相关对象"以这种方式将与DataObject
本身一起发布。