El tema es el siguiente, desde el controller paso los datos al form, estos se visualizan correctamente, pero al enviarlos, no pasan el isValid si no tiene valores definidos el array del Select.
Pongo el caso real. Hay algo que no estoy haciendo bien.
El select del form:
Código PHP:
//select
$this->addElement(
'select', 'delegation', array(
'label' => 'Delegation',
'multioptions' => array(),
'required' => false,
)
);
Código PHP:
public function setDefaultsFromEntity($user, $select)
{
//setear el select
$select = $this->getElement('delegation');
$select->clearMultiOptions();
$select->addMultiOptions($select);
//default values for select
$values = array(
'delegation' => $user[0]['delId'],
);
$this->setDefaults($values);
}
0 => 'uno'
1 => 'dos'
2 => 'tres'
3 => 'cuatro'
4 => 'cinco'
Con el select tal cual está, no pasa el isValid. sale el error traducido "No se ha encontrado '1' en el argumento especificado" a pesar de que se ven todos los valores seteados.
Pero si añado por ejemplo dos valores directamente al MultiOptions del select
Código PHP:
//select
$this->addElement(
'select', 'delegation', array(
'label' => 'Delegation',
'multioptions' => array(
0 => 'unValor',
1 => 'otroValor',
),
'required' => false,
)
);
En este caso solo pasarían los que tienen indice 0 y 1. El resto saldría el error.
He probado con clearMultiOptions, addMultiOptions, setMultiOptions, mezclando, quitando, poniendo y con todo me sale lo mismo.
Alguna pista de que puede ser.
Gracias de antemano y saludos,