tutorial plantillas para cakephp2 php cakephp

plantillas - cakephp: cómo obtener una variedad de elementos de un formulario web



set layout cakephp 3 (3)

En mi forma cakephp tengo el siguiente código

<p> <?php echo $form->input(''option[]'',array(''size''=>13)); ?> </p> <p> <?php echo $form->input(''option[]'',array(''size''=>13)); ?> </p> <p> <?php echo $form->input(''option[]'',array(''size''=>13)); ?> </p> <p> <?php echo $form->input(''option[]'',array(''size''=>13)); ?> </p>

Estoy tratando de obtener valores de un conjunto de cuadros de texto de entrada, la cantidad de cuadros de texto puede ser establecida por el usuario, por lo que no puedo dar nombres individuales de cada cuadro de texto, pero ¿Cómo puedo obtener valores de mi controlador para insertar datos en bases de datos? mesa

Gracias


Puede dejar el formulario tal como está (y usar sugerencias de @Wizzard y @Lee), pero la mejor práctica es usar una variable incremental para construir la lista. es decir:

for($i=0;$i<$option_number;$i++){ echo $form->input("MyModel.{$i}.option"); }

De esta manera, su variable después de publicar el formulario se verá así:

data [MyModel] [0] [option] = ''the value'' data MyModel [option] = ''the value'' data [MyModel] [2] [option] = ''the value'' ... y así sucesivamente ...

En el controlador puede acceder a los datos publicados por:

print_r ($ this-> data);

Eche un vistazo a saveAll () (busque saveAll en su navegador y busque la estructura de datos sugerida)


Seguro que están en la matriz $ this-> params [''form''] en el controlador ... o $ this-> data

En el método de su controlador, haga un var_dump ($ this); y verás dónde aparecen


sus campos de entrada son nombrados de la misma manera: option[] . Esto es bueno. Hace que php los convierta automáticamente en una matriz cuando se carga la solicitud. Para que pueda obtenerlos en su controlador CakePHP de esta manera:

$this->params[''form''][''option''][0] $this->params[''form''][''option''][1] ... and so on ...