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_value
comme une chaîne. Le #options
tableau 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_merge
peut 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 500
clé n'existe tout simplement pas. En effet, array_merge
n'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_value
peut être annulé?