cakephp: как получить массив элементов из веб-формы

В моей форме кекса я имею следующий код

<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> 

Я пытаюсь получить значения из набора входных текстовых полей, количество текстовых полей может быть установлено пользователем, поэтому не может указывать отдельные имена каждого текстового поля, но как я могу получить значения от моего контроллера для вставки данных в db Таблица

спасибо

Solutions Collecting From Web of "cakephp: как получить массив элементов из веб-формы"

Вы можете оставить форму как есть (и использовать предложения от @Wizzard и @Lee), но лучше всего использовать инкрементную переменную для построения списка. то есть:

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

Таким образом, ваша переменная после публикации формы будет выглядеть так:

data [MyModel] [0] [option] = 'значение' данные MyModel [опция] = 'данные' [MyModel] [2] [option] = 'значение' … и так далее …

В контроллере вы можете получить доступ к опубликованным данным:

print_r ($ this-> данные);

Взгляните saveAll () (найдите saveAll в своем браузере и найдите предлагаемую структуру данных)

ваши поля ввода называются одинаковыми: option[] . Это хорошо. Это заставляет php автоматически превращать их в массив при загрузке запроса. Таким образом, вы можете получить их в своем контроллере CakePHP следующим образом:

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

Довольно уверены, что они находятся в массиве $ this-> params ['form'] в контроллере .. или $ this-> data

В методе вашего контроллера выполните var_dump ($ this); и вы увидите, где они появляются