ฉันไม่เคยเห็นปัญหานี้เลย ค่าเริ่มต้นนั้นควรใช้งานได้ ฉันจะบอกว่าลองทำกุญแจสตริงและตั้ง#default_value
เป็นสตริง #options
อาร์เรย์อาจจะถูกส่งผ่านarray_merge
ที่ไหนสักแห่งจึง rekeying จำนวนเต็มคีย์ หากคีย์เป็นสตริงดังนั้นจึงไม่ควรเกิดขึ้น ขณะนี้อาร์เรย์ของคุณมีลักษณะดังนี้:
$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
อาจถูกแทนที่?