Я никогда не видел эту проблему. Это значение по умолчанию должно работать. Я бы сказал, попробуйте сделать ключ строкой и установить #default_value
в качестве строки. #options
Массив может быть пропускает через array_merge
где - нибудь, таким образом , перепечатывание целого число клавиша. Если ключи являются строками, этого не должно происходить. В настоящее время ваш массив выглядит так:
$options = array(
0 => '0',
500 => '500',
1000 => '1000',
);
Но передача этого массива array_merge
может реорганизовать эти целочисленные ключи в последовательном порядке:
$options = array(
0 => '0',
1 => '500',
2 => '1000',
);
Если это произойдет, то 500
ключ просто не существует. Это потому, array_merge
что не любит сохранять целочисленные ключи, но вы можете использовать строки, чтобы предотвратить это. Итак, я думаю, что ваш массив должен выглядеть примерно так:
$options = array(
'0' => '0',
'500' => '500',
'1000' => '1000',
);
Затем вы можете установить #default_value
:
$form['price']['min']['#default_value'] = '500';
Иначе, есть ли где-нибудь еще, где это default_value
может быть переопределено?