2012-06-02 2 views
1

사용자가 회사 로고를 업로드하기 위해 프론트 엔드에 UploadField를 사용하려고합니다.Silverstripe 3 beta UploadField 사용 방법

아직 UploadField에 대한 문서가 많지 않습니다. 그리고 나는 그것을 시도했지만 지금까지는 운이 없다.

누구나 사용법을 안내 할 수 있습니까?

+0

아직 uploadfield를 다루는 많은 문서가없는 것처럼 보이므로 당분간은 코드 자체 만 남게됩니다 (uploadfield 클래스에 몇 가지 의견이 있습니다). 3.0 안정판이 출시되면 곧 좋아질 것입니다. – schellmax

답변

0

업로드 필드는 개체의 can *() 메서드를 통해 권한을 확인합니다.

프론트 엔드 편집을 허용하려면 사용자 정의 객체에서 File :: canEdit (또는 Image :: canEdit)를 오버로드시켜야합니다.

+0

안녕하세요, SS 문서에서 업로드 필드가 '관계에 저장'할 수 있다고 말합니다. 나는 데이터 객체에 has-one 릴레이션을 가지고있다. 예를 들어 정적 $ has_one = array ('ProfilePhoto'=> 'Image'); 'ProfilePhoto'라는 이름으로 업로드 필드가있는 양식을 만들면 성공적으로 업로드 할 수 있지만 관계에 저장할 수없는 것 같습니다. 아래 코드로 업로드 필드를 만들었습니다 : 새로운 UploadField ('ProfilePhoto', 'Profile Photo'); 너는 어떤 생각을 가지고 있니? – Joe

+0

안녕하세요 Joe, 그냥 알려주고 있습니다. 저는 지금 당장 같은 문제에 봉착하고 좋은 해결책을 찾고 있습니다. 내가 뭔가를 찾자 마자 알려 줄거야! 건배 – Tim

+0

UploadField는 내가 아는 한 프론트 엔드에 아직 준비가되어 있지 않으므로 이것이 UploadField의 버그 일 가능성이 높습니다. 프론트 엔드에서 작동하도록 계획되어 있지만, 지금까지 아무도 그것을 수행 할 시간이 없었습니다. 할일과 버그 수정 목록은 꽤 오래되었습니다. S – Zauberfisch

1

이것은 조금 오래되었지만 다른 사람이 이처럼 비틀 거리면 나는 그렇게합니다.

UploadField는 프론트 엔드로 작동합니다. saveInto 함수를 사용하여 many_many 관계로 저장할 수 없었습니다. 그러나 내가 놓친 가장 큰 문제는 DataObject/Page가 먼저 존재해야한다는 것입니다. 이미지와 같은 관련 객체를 첨부하기 전에 저장해야하기 때문입니다.

SS 3.0.1를 사용하는 다른 방법보다는 당신이 매개 변수를 통해 수동 루프를 saveinto 기능을 할 수 있습니다 사용하고 many_many 이미지의 객체 스스로에 첨부

static $has_one = array(
    "Photo" => "Image" 
); 

$fields = new FieldList(
    new UploadField('Photo', 'Upload') 
); 

function saveForm($data, $form) { 
    $object = new DataObject(); 
    // for a new object write before saveinto 
    $object->write(); 
    $form->saveInto($object); 
    $object->write(); 
    Director::redirectBack(); 
} 

.