SilverStripe DropdownField默认值为布尔值

时间:2016-10-23 09:50:44

标签: php silverstripe

我无法为DropdownField设置默认值

DropdownField::create('Foo', 'Foo', array(true => 'Yes', false => 'No'), $value = true);

创建新页面时,该字段显示 false => 'No'。是因为Foo的$ db值默认设置为 Null 吗?

或者是因为DropdownField Default 参数应该是一个字符串,而这里它是一个布尔值?

2 个答案:

答案 0 :(得分:2)

您可以使用其中一个设置默认值。

private static $defaults = [
  'Foo' => true
];

或者如果你想拥有更加动态的方式

public function populateDefaults() {
  parent::populateDefaults();

  $this->Foo = true;
}

答案 1 :(得分:1)

以下内容可行:

DropdownField::create('Foo', 'Foo', array(true => 'Yes', false => 'No'), 0);

您遇到的问题是您正在通过false。我认为代码将false解释为没有设置默认值。就像你通过null一样。 nullfalse以外的任何值均可使用。