SilverStripe DropdownField 默认为布尔值
SilverStripe DropdownField default for boolean value
我无法为 DropdownField 设置默认值
DropdownField::create('Foo', 'Foo', array(true => 'Yes', false => 'No'), $value = true);
创建新页面时,该字段显示否 false => 'No'
。是因为 Foo
的 $db 值默认设置为 Null 吗?
还是因为DropdownField
的默认参数应该是字符串,而这里是布尔值?
您可以使用其中之一设置默认值。
private static $defaults = [
'Foo' => true
];
或者如果你想有一个更动态的方式
public function populateDefaults() {
parent::populateDefaults();
$this->Foo = true;
}
以下将起作用:
DropdownField::create('Foo', 'Foo', array(true => 'Yes', false => 'No'), 0);
您遇到的问题是您通过了 false
。我认为代码将 false
解释为未设置默认值。类似于您通过了 null
。 null
或 false
以外的任何值都应该有效。
我无法为 DropdownField 设置默认值
DropdownField::create('Foo', 'Foo', array(true => 'Yes', false => 'No'), $value = true);
创建新页面时,该字段显示否 false => 'No'
。是因为 Foo
的 $db 值默认设置为 Null 吗?
还是因为DropdownField
的默认参数应该是字符串,而这里是布尔值?
您可以使用其中之一设置默认值。
private static $defaults = [
'Foo' => true
];
或者如果你想有一个更动态的方式
public function populateDefaults() {
parent::populateDefaults();
$this->Foo = true;
}
以下将起作用:
DropdownField::create('Foo', 'Foo', array(true => 'Yes', false => 'No'), 0);
您遇到的问题是您通过了 false
。我认为代码将 false
解释为未设置默认值。类似于您通过了 null
。 null
或 false
以外的任何值都应该有效。