如何在cms SS4中使用DBFile

时间:2017-10-05 01:37:08

标签: silverstripe-4

我一直在尝试使用新的DBFile数据类型,就像在这个(修剪过的)示例中一样

class SlideImage extends DataObject
{
  private static $table_name = 'SlideImage';
  private static $plural_name = 'Slide Images';
  private static $singular_name = 'Slide Image';

  private static $db = array(
        'Name' => 'Varchar(255)',
         'TestImageField' => "DBFile('image/supported')"
  );
  private static $has_one = array(
        'Image' => Image::class,
 );

在函数getCMSFields(){

中很容易处理Image
  $imageField = new UploadField('Image', 'Choose Image');
  $imageField->setFolderName('Uploads/promotionalbanners');

和新的       $ imageField = Injector :: inst() - > create(FileHandleField :: class,' Image','选择图像');

也可以。

但是,尝试在下面的尝试中使用具有TestImageField的任何一个会产生错误"不能使用SilverStripe \ Assets \ Storage \ DBFile类型的对象作为数组"

  $fields->addFieldToTab('Root.Main', new UploadField('TestImageField', 'Choose Image'));

或者

  $imageFielddb = Injector::inst()->create(FileHandleField::class, 'TestImageField');

  $imageFielddb = $this->TestImageField->scaffoldFormField('TestImageField');

我知道我在数据库定义中对DBFile的概念做了一些非常愚蠢的事情,但我怎么能将它用作实际的图像引用 - 或者我不能单独使用它?

0 个答案:

没有答案