Ich habe dieses Problem noch nie gesehen. Dieser Standardwert sollte funktionieren. Ich würde sagen, versuchen Sie, den Schlüssel zu einer Zeichenfolge zu machen und #default_valueals Zeichenfolge festzulegen. Das #optionsArray wird möglicherweise array_merge irgendwo durchlaufen , wodurch ganzzahlige Schlüssel neu eingegeben werden. Wenn Schlüssel Zeichenfolgen sind, sollte das nicht passieren. Derzeit sieht Ihr Array folgendermaßen aus:
$options = array(
0 => '0',
500 => '500',
1000 => '1000',
);
Durch die Weitergabe dieses Arrays array_mergekönnen diese ganzzahligen Schlüssel jedoch in der folgenden Reihenfolge reorganisiert werden:
$options = array(
0 => '0',
1 => '500',
2 => '1000',
);
In diesem 500Fall existiert der Schlüssel einfach nicht. Dies liegt daran, array_mergedass Integer-Schlüssel nicht beibehalten werden sollen, Sie können jedoch Zeichenfolgen verwenden, um dies zu verhindern. Ich denke, Ihr Array sollte ungefähr so aussehen:
$options = array(
'0' => '0',
'500' => '500',
'1000' => '1000',
);
Dann können Sie einstellen #default_value:
$form['price']['min']['#default_value'] = '500';
Andernfalls gibt es irgendwo anders, wo die default_valuemöglicherweise überschrieben werden?