Bu problemi hiç görmedim. Bu varsayılan değer çalışmalıdır. Anahtar bir dize yapmak ve bir dize #default_valueolarak ayarlamak deneyin söyleyebilirim . #optionsDizi geçirilerek olabilir array_merge , böylece anahtar tamsayıdır yeniden anahtarlama, bir yerde. Anahtarlar dize ise, bu olmamalıdır. Şu anda diziniz şu şekilde görünüyor:
$options = array(
0 => '0',
500 => '500',
1000 => '1000',
);
Ancak bu diziyi array_mergegeçirmek, bu tamsayı anahtarlarını sıralı olacak şekilde yeniden düzenleyebilir:
$options = array(
0 => '0',
1 => '500',
2 => '1000',
);
Bu durumda, 500anahtar basitçe mevcut değildir. Bunun nedeni array_merge, tamsayı anahtarlarını korumaktan hoşlanmamasıdır, ancak bunu önlemek için dizeleri kullanabilirsiniz. Yani, dizininizin daha çok benzemesi gerektiğini düşünüyorum:
$options = array(
'0' => '0',
'500' => '500',
'1000' => '1000',
);
Ardından aşağıdakileri ayarlayabilirsiniz #default_value:
$form['price']['min']['#default_value'] = '500';
Aksi takdirde, default_valuegeçersiz kılınabilecek başka bir yer var mı?