Sliverstripe CMS 使用枚举值填充下拉列表

问题描述 投票:0回答:1

我需要两个附加字段用于常规设置(TimeForClosingTab、ClosingTabOnOff)。我得到了字段,但我不知道如何正确填充枚举字段。该文件位于 app/src/extensions 中。在单例中定义类的正确方法是什么?

自定义站点配置.php

class CustomSiteConfig extends DataExtension
{

private static $db = [
    'TimeForClosingTab' => 'Int',
    'ClosingTabOnOff' => "Enum(array('On','Off'))"
];

public function updateCMSFields(FieldList $fields)
{
    $fields->addFieldToTab("Root.Main",
        new \SilverStripe\Forms\NumericField("TimeForClosingTab", "Time before closing new tab (s)"),
        new \SilverStripe\Forms\DropdownField('ClosingTabOnOff', 'Turn closing tab on / off',
            singleton('CustomSiteConfig')->dbObject('ClosingTabOnOff')->enumValues())
    );
}

}

yaml

Silverstripe\SiteConfig\SiteConfig:
  extensions:
    - CustomSiteConfig
silverstripe silverstripe-4
1个回答
0
投票

答案就在 yml 中:)

singleton('\Silverstripe\SiteConfig\SiteConfig')->dbObject('ClosingTabOnOff')->enumValues())
© www.soinside.com 2019 - 2024. All rights reserved.