Je n'ai jamais vu ce problème. Cette valeur par défaut devrait fonctionner. Je dirais essayer de faire de la clé une chaîne et de la définir #default_valuecomme une chaîne. Le #optionstableau peut être en cours de passage array_merge quelque part, recomposant ainsi les clés entières. Si les clés sont des chaînes, cela ne devrait pas se produire. Actuellement, votre tableau ressemble à ceci:
$options = array(
0 => '0',
500 => '500',
1000 => '1000',
);
Mais le passage de ce tableau array_mergepeut réorganiser ces clés entières pour qu'elles soient dans un ordre séquentiel:
$options = array(
0 => '0',
1 => '500',
2 => '1000',
);
Si cela se produit, la 500clé n'existe tout simplement pas. En effet, array_mergen'aime pas conserver les clés entières, mais vous pouvez utiliser des chaînes pour l'empêcher. Donc, je pense que votre tableau devrait ressembler davantage à ceci:
$options = array(
'0' => '0',
'500' => '500',
'1000' => '1000',
);
Ensuite, vous pouvez définir votre #default_value:
$form['price']['min']['#default_value'] = '500';
Sinon, y a-t-il ailleurs où le default_valuepeut être annulé?