上传字段的 Silverstripe 默认图像
Silverstripe default image for upload field
我正在使用 SilverStripe 4 构建一个网站,用户可以在其中上传图片。
有没有办法在用户上传图片之前在数据库中设置默认图片?
我知道我可以检查布局中是否存在。但我宁愿避免这样做,因为我要在几个地方使用该图像。
我知道我可以覆盖 populageDefaults() 来设置日期和其他类型字段的默认值。但是图片呢?
这是 class 处理图像的 php 代码:
<?php
use SilverStripe\Forms\DateField;
use SilverStripe\Assets\Image;
use SilverStripe\Forms\TextareaField;
use SilverStripe\AssetAdmin\Forms\UploadField;
use Page;
class ArticlePage extends Page {
private static $can_be_root = false;
private static $db = [
'DateEnd' => 'Date',
'DateStart' => 'Date',
'Teaser' => 'Text',
];
private static $has_one = [
'Photo' => Image::class,
];
private static $owns = [
'Photo',
];
public function getCMSFields() {
$fields = parent::getCMSFields();
$fields->addFieldToTab('Root.Main', DateField::create('DateStart', 'Start Date'), 'Content');
$fields->addFieldToTab('Root.Main', DateField::create('DateEnd', 'End Date'), 'Content');
$fields->addFieldToTab('Root.Main', TextareaField::create('Teaser'), 'Content');
$fields->addFieldToTab('Root.Main', $photo = UploadField::create('Photo', 'Article Image'), 'Content');
$photo->getValidator()->setAllowedExtensions(['jpg']);
return $fields;
}
public function populateDefaults() {
$this->DateEnd = date('Y-m-d');
$this->DateStart = date('Y-m-d');
$this->Teaser = 'A short teaser.';
parent::populateDefaults();
}
}
可以的,图片ID可以设置如下...
public function populateDefaults()
{
$this->PhotoID = 1;//Assuming you know the ID of the Image
parent::populateDefaults();
}
我正在使用 SilverStripe 4 构建一个网站,用户可以在其中上传图片。
有没有办法在用户上传图片之前在数据库中设置默认图片?
我知道我可以检查布局中是否存在。但我宁愿避免这样做,因为我要在几个地方使用该图像。
我知道我可以覆盖 populageDefaults() 来设置日期和其他类型字段的默认值。但是图片呢?
这是 class 处理图像的 php 代码:
<?php
use SilverStripe\Forms\DateField;
use SilverStripe\Assets\Image;
use SilverStripe\Forms\TextareaField;
use SilverStripe\AssetAdmin\Forms\UploadField;
use Page;
class ArticlePage extends Page {
private static $can_be_root = false;
private static $db = [
'DateEnd' => 'Date',
'DateStart' => 'Date',
'Teaser' => 'Text',
];
private static $has_one = [
'Photo' => Image::class,
];
private static $owns = [
'Photo',
];
public function getCMSFields() {
$fields = parent::getCMSFields();
$fields->addFieldToTab('Root.Main', DateField::create('DateStart', 'Start Date'), 'Content');
$fields->addFieldToTab('Root.Main', DateField::create('DateEnd', 'End Date'), 'Content');
$fields->addFieldToTab('Root.Main', TextareaField::create('Teaser'), 'Content');
$fields->addFieldToTab('Root.Main', $photo = UploadField::create('Photo', 'Article Image'), 'Content');
$photo->getValidator()->setAllowedExtensions(['jpg']);
return $fields;
}
public function populateDefaults() {
$this->DateEnd = date('Y-m-d');
$this->DateStart = date('Y-m-d');
$this->Teaser = 'A short teaser.';
parent::populateDefaults();
}
}
可以的,图片ID可以设置如下...
public function populateDefaults()
{
$this->PhotoID = 1;//Assuming you know the ID of the Image
parent::populateDefaults();
}