如何将文件附加到silverstripe 3中的数据对象

add*_*add 1 file-upload object silverstripe

我有一个简单的任务,我似乎无法弄清楚.在SS3中,如何将文件附加到我的数据对象,或者换句话说,创建文件上载字段,并将该文件对象绑定到数据对象.见下面的例子:

class myDataObject extends DataObject{

 public static $db = array(
    'Title' => 'Varchar',
    'Desc' => 'Text',
    'Help Text' => 'HTMLText',
    // 'File Upload (document)' => ???
 );

}//class
Run Code Online (Sandbox Code Playgroud)

注意:现在我只想做一个文件,但后来,在另一个对象上我想做多个文件.

wmk*_*wmk 7

文件无法在$ db中设置,但在$ has_one中,因为它与另一个DataObject有关.

所以你需要:

private static $has_one = array(
  'FileUpload' => 'File'
);
Run Code Online (Sandbox Code Playgroud)

我不认为$ db或$ has_one键中的空格和括号是个好主意,因为它们用于数据库字段.如果要为scaffolded字段设置标题,请使用$ field_labels.

private static $field_labels = array(
  'Title' => 'My fancy title',
  'Desc' => 'Description',
  'has_one_FileUpload' => 'File upload (document)'
);
Run Code Online (Sandbox Code Playgroud)

如果你想要多个文件,你需要将它定义为$ has_many而不是$ has_one.

有关详细信息,请参阅http://doc.silverstripe.org/framework/en/tutorials/5-dataobject-relationship-management.