2017-11-20 7 views
3

私はSilverStripe4とModelAdminを使用してDataObjectsを管理しています。Silverstripe ModelAdminのファイル関係は発行しません

DataObjectにはhas_oneファイルがあります。すべてこれまでのところ動作しますが、フロントエンドコントローラではFile関係に空のオブジェクトがあります。

ファイルがFile_Liveテーブルにないことがわかります。そのため、公開されていないので、フロントエンドコントローラには見つかりません。

ModelAdminからファイル関係を公開するにはどうすればよいですか? ファイルがアップロードされると、自動的に公開されます。

バージョン管理されたDataObjectsを使用しても、私はまだこのようなものが必要でしょう:https://github.com/drzax/silverstripe-bits/tree/master/VersionedModelAdmin
ModelAdminにメカニズムを公開する必要があります。

SS4に何かが組み込まれていますか? これはファイル関係にもカスケードされますか?

編集:そこに組み込まれてSS4 のボタンを公開されたバージョン管理のDataObjectに関する だけ使用します。

private static $owns = ['FileRelationName']; 

例と:

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

private static $versioned_gridfield_extensions = true; 

答えて

3

あなたはあなたののDataObjectに以下を追加することができます関係:

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

このように「所有」と宣言されている関連オブジェクトは、DataObject自体で公開されます。

+0

これは、所有しているDataObjectのバージョンが変更されている場合にのみ機能しますか? – ivoba

+0

@ivoba AFAIK DataObjectのバージョンが – bummzack

+0

であると思われる場合は、 – ivoba

関連する問題