大家,如何添加與silverstripe uploadfield許多文件
我試圖超過1文件添加到我的uploadfield與此代碼 - >
class FileDo extends File {
static $has_one = array(
'DocumentsFile' => 'DocumentsFile',
);
}
class DocumentsFile extends DataObject {
static $has_one = array(
'DocumentPageAcces1' => 'DocumentPageAcces1'
);
static $has_many = array(
'Files' => 'FileDo'
);
public function getCMSFields() {
$fields = parent::getCMSFields();
$fields->removeByName('DocumentPageAcces1ID');
return $fields;
}
public function onBeforeWrite() {
parent::onBeforeWrite();
$page = DataObject::get_one('DocumentPageAcces1');
if($page) {
$this->DocumentPageAcces1ID = $page->ID;
}
}
}
class DocumentPageAcces1 extends Page {
static $has_many = array(
'DocumentsFiles' => 'DocumentsFile',
);
public function getCMSFields() {
$fields = parent::getCMSFields();
$fields->addFieldToTab('Root.Main', new TextareaField('DocumentsIntro_en', "Document Introduction"));
$fields->addFieldToTab('Root.Main', new TextareaField('PublicationsIntro_en', "Publication Introduction"));
$fields->addFieldToTab('Root.FR', new TextareaField('DocumentsIntro_fr', "Document Introduction"));
$fields->addFieldToTab('Root.FR', new TextareaField('PublicationsIntro_fr', "Publication Introduction"));
$fields->addFieldToTab('Root.NL', new TextareaField('DocumentsIntro_nl', "Document Introduction"));
$fields->addFieldToTab('Root.NL', new TextareaField('PublicationsIntro_nl', "Publication Introduction"));
$upload = new UploadField(
'DocumentsFile',
'Document',
$this->DocumentsFiles()
);
$fields->addFieldToTab('Root.DocumentsFile', $upload);
$fields->removeByName('Content');
$fields->removeByName('Metadata');
return $fields;
}
}
class DocumentPageAcces1_Controller extends Page_Controller {
}
所以要清楚:我試圖在DocumentPageAcces1中添加一些DocumentFile。當我執行此代碼時,我在DocumentPageAcces1中有選項卡DocumentsFiles,並在此選項卡中有uploadfield。
問題是,uploadfield不想保留我的文件,所以當我選擇一些文件,我點擊確定在我的finder中,什麼也沒有發生......任何人都可以幫助我嗎?
謝謝托馬斯。
感謝您的答覆,其實你的解決方案是好的,如果我只有一種類型的文件。但是如果我需要添加一些其他的,我需要創建DataObject,否則Silverstripe鏈接這兩個文件。 – tomzi
不知道我真的明白你的意思嗎?你想將許多文件鏈接到一個頁面嗎?所有的類File或子類? – colymba