Tôi chưa bao giờ thấy vấn đề này. Giá trị mặc định đó sẽ hoạt động. Tôi muốn nói hãy thử làm cho khóa thành một chuỗi và đặt #default_value
thành một chuỗi. Các #options
mảng chưa được đi qua array_merge
nơi nào đó, do đó rekeying nguyên phím. Nếu khóa là chuỗi thì điều đó không nên xảy ra. Hiện tại, mảng của bạn trông như thế này:
$options = array(
0 => '0',
500 => '500',
1000 => '1000',
);
Nhưng việc truyền mảng đó qua array_merge
có thể sắp xếp lại các khóa nguyên đó theo thứ tự tuần tự:
$options = array(
0 => '0',
1 => '500',
2 => '1000',
);
Nếu điều đó xảy ra thì 500
chìa khóa đơn giản là không tồn tại. Điều này là do array_merge
không thích bảo tồn các khóa nguyên, nhưng bạn có thể sử dụng các chuỗi để ngăn chặn nó. Vì vậy, tôi nghĩ rằng mảng của bạn sẽ trông giống như thế này:
$options = array(
'0' => '0',
'500' => '500',
'1000' => '1000',
);
Sau đó, bạn có thể thiết lập #default_value
:
$form['price']['min']['#default_value'] = '500';
Nếu không, có nơi nào khác default_value
có thể bị ghi đè không?