मैंने इस समस्या को कभी नहीं देखा है। वह डिफ़ॉल्ट मान काम करना चाहिए। मैं कहूंगा कि कुंजी को एक स्ट्रिंग बनाने की कोशिश करें और #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हो सकता है?