在SilverStripe CMS网站上,我有一个自定义页脚附加代码,我想对其进行扩展,以便可以在CMS中上传背景图片。该代码看起来不错,但是添加的字段不在CMS中找到。
这是我的代码:
class CustomFooter extends DataExtension {
static $db = array(
'FooterContent' => 'HTMLText'
);
public static $has_one = array(
'Logo' => 'Image',
'BGImage' => 'Background Image'
);
public function getCMSFields() {
$this->extend('updateCMSFields', $fields);
return $fields;
}
public function updateCMSFields(FieldList $fields) {
$fields->addFieldToTab('Root.Footer', new HTMLEditorField('FooterContent', 'Footer Content'));
$fields->addFieldToTab('Root.Main', new UploadField('Logo', 'Company Logo'));
$fields->addFieldToTab('Root.Main', new UploadField('BGImage', 'Background image'));
}
}
奇怪的是,这两个图像上传字段都没有显示在“内容”选项卡上显示的位置,并且无法按预期运行。
为什么不UploadField
显示?
你的
public static $has_one = array(
"Logo"=>"Image",
"BGImage"=>"Background Image"
);
看起来很奇怪。该$has_one
数组将关系名称作为键,并将关系的类名称作为值,我怀疑名称中允许有空格的类名称。所以我会尝试像
public static $has_one = array(
"Logo"=>"Image",
"BGImage"=>"Image"
);
然后运行adev/build?flush
并检查数据库中您的表是否具有一LogoID
列,并且该表的一列BGImageID
具有一个关系。
字段生成看起来不错,它应该可以正常工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句