2016-10-23 6 views
1

私は新しいページを作成する場合、フィールドはませfalse => 'No'を示していないDropdownFieldSilverStripe DropdownFieldデフォルト

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

のデフォルト値を設定することはできません。それはFooの$ dbの値がに設定されているためですか?ヌルがデフォルトですか?

のデフォルトのパラメータがDropdownFieldの場合は文字列にする必要がありますが、ここではブール値です。

答えて

2

デフォルト値のいずれかを設定できます。

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

たり、よりダイナミックな方法を持っているしたい場合は

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

    $this->Foo = true; 
} 
+0

最初のメソッド($ defaults)は機能しますが、最初の '$ db'値の後に明示的に 'DropdownField'を設定している点は分かりません – Faloude

1

次のように動作します:

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

あなたが持った問題は、あなたがfalseを集めていることです。私はそのコードは、falseのデフォルト値が設定されていないと解釈していたと思います。 nullに合格した場合と同様です。 nullまたはfalse以外の値は有効です。

関連する問題