Nunca he visto este problema. Ese valor predeterminado debería funcionar. Yo diría que intente convertir la clave en una cadena y establecerla #default_value
como una cadena. La #options
matriz se puede pasar a array_merge
algún lado, volviendo a escribir claves enteras. Si las claves son cadenas, entonces eso no debería suceder. Actualmente, su matriz se ve así:
$options = array(
0 => '0',
500 => '500',
1000 => '1000',
);
Pero pasar esa matriz array_merge
puede reorganizar esas teclas enteras para que estén en orden secuencial:
$options = array(
0 => '0',
1 => '500',
2 => '1000',
);
Si eso sucede, la 500
clave simplemente no existe. Esto se debe a que array_merge
no le gusta conservar las claves de enteros, pero puede usar cadenas para evitarlo. Entonces, creo que su matriz debería verse más así:
$options = array(
'0' => '0',
'500' => '500',
'1000' => '1000',
);
Entonces puedes configurar tu #default_value
:
$form['price']['min']['#default_value'] = '500';
De lo contrario, ¿hay algún otro lugar donde default_value
se pueda anular?