quiero usar la validación núcleo de CakePHP para las listas en mi modelo:validación del modelo de CakePHP con arreglo
var $validate = array(
'selectBox' => array(
'allowedChoice' => array(
'rule' => array('inList', $listToCheck),
'message' => 'Enter something in listToCheck.'
)
)
);
Sin embargo, la matriz $listToCheck
es la misma matriz que se utiliza en la vista, para llenar una caja de selección. ¿Dónde pongo esta función?
public function getList() {
return array('hi'=>'Hello','bi'=>'Goodbye','si'=>'Salutations');
}
Ya en mi regulador, en una de las acciones Soy la creación por la vista, como:
public function actionForForm() {
$options = $this->getList();
$this->set('options', $options);
}
Por lo tanto, yo no quiero tener que copiar la función getList()
. ¿Dónde puedo ponerlo para que el Modelo pueda llamarlo para completar su matriz $listToCheck
?
Gracias por su ayuda.
Gracias por la respuesta. Pero, ¿qué sucede cuando quiero usar la función '__()' en los valores de fieldAbc? – ash
A continuación, cree todo el conjunto en el constructor, o 'array_walk' sobre él y aplique la función en los campos' mensaje'. '$ this-> choices = array ('a' => __ ('The A', true), ...);' – deceze
Perfecto. ¡Gracias por tu ayuda! – ash