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_value
als Zeichenfolge festzulegen. Das #options
Array 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_merge
können diese ganzzahligen Schlüssel jedoch in der folgenden Reihenfolge reorganisiert werden:
$options = array(
0 => '0',
1 => '500',
2 => '1000',
);
In diesem 500
Fall existiert der Schlüssel einfach nicht. Dies liegt daran, array_merge
dass 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_value
möglicherweise überschrieben werden?