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

时间:2015-07-06 15:49:31

标签: php cakephp

我需要设置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];

.....

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

2 个答案:

答案 0 :(得分:0)

您需要调用输入字段名称,然后按如下方式添加索引:

<?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']。它应该是一个数组。

答案 1 :(得分:0)

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

在您看来:

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

然后,在您的控制器中,您可以通过以下方式访问日期数组的内容:

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

希望这可以提供帮助。