cakephp 2如何动态设置输入名称


cakephp 2 How to set input name dynamically

我需要根据当前月份设置30或29或30或28个输入,并在发布后从这些输入中获取文本。在我看来,我是这样做的:

echo $this->Form->create('Cra');
foreach ($MonthDaysM as $i) : ?>
<td><?php echo $this->Form->input($i, array('label'=>false));?></td>
<?php endforeach; ?>
</form>

和控制器

if ($this->request->is('post')) {


$date = $this->request->data['Cra'][$i];

但是不起作用,因为输入的名称不应该是变量。但是我怎样才能得到输入的内容????

您需要调用输入字段名,然后添加索引,如下所示:

<?php foreach ($MonthDaysM as $i) : ?>
    <td><?php echo $this->Form->input('your_field_name.' . $i, array('label'=>false));?></td>
<?php endforeach; ?>

则在控制器中检查$this->request->data['Cra']['your_field_name']。应该是一个数组

我不是很清楚你的模型'Cra'是如何定义的,但如果你想获得输入的内容:

在你看来:

<?php for($i = 1; $i <= date('t'); $i++) : ?>
<td><?php echo $this->Form->input('Cra.days.'.$i, array('label'=>false)); ?></td>
<?php endfor; ?>

然后,在你的控制器中,你可以这样访问你的days数组的内容:

if($this->request->is('post')){
  $days = $this->request->data['Cra']['days'];
}

例如,'days'数组的结果为:

Array
(
  [1] => Day 1 content
  [2] => Day 2 content
  [3] => Day 3 content
  ...
)