2017-11-20 9 views
3

SilverStripe4 및 ModelAdmin을 사용하여 DataObjects를 관리합니다.Silverstripe ModelAdmin의 File 관계가 게시하지 않습니다.

DataObject에는 has_one 파일이 있습니다. 모든 것은 지금까지는 작동하지만 프론트 엔드 컨트롤러에서는 File 관계에 빈 객체가 있습니다.

파일이 File_Live 테이블에 없다는 것을 알기 때문에 게시되지 않았으므로 프런트 엔드 컨트롤러에 없습니다.

ModelAdmin에서 파일 관계를 게시하려면 어떻게해야합니까? 기본적으로 파일을 업로드 할 때 자동으로 게시해야합니다.

버전 관리 DataObject를 사용하는 경우 ModelAdmin에 메커니즘을 게시하려면 https://github.com/drzax/silverstripe-bits/tree/master/VersionedModelAdmin
이 필요합니다.

SS4에 내장 된 것이 있습니까? 이 또한 파일 관계로 캐스케이드됩니까?

편집하십시오이 내장 SS4 에서 버튼을 게시되어 버전 데이터 객체에 대한 바로 사용

private static $owns = ['FileRelationName']; 

예와 :

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

private static $versioned_gridfield_extensions = true; 

답변

3

당신은 당신의 데이터 객체에 다음을 추가 할 수 있습니다 관계 :

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

이렇게 소유 된 것으로 선언 된 모든 관련 객체는 DataObject 자체와 함께 게시됩니다.

+0

소유하는 DataObject의 버전이 변경된 경우에만 작동합니까? – ivoba

+0

@ivoba AFAIK DataObject가 버전 번호 – bummzack

+0

으로 작동하지 않는 것으로 보이는 경우에도 작동합니다. – ivoba