为什么我的帖子只有一个项目? CakePHP 2.x

时间:2014-08-10 21:13:20

标签: php cakephp

我认为我有桌子。此表格形式。我需要将所有项目从表格发送到我的控制器。我创建表单,但他只发送一个项目,最后一项... 这是我在View中的表:

<?php echo $this->Form->create('Goodsandoffer');?>
    <table id="GoodSandOffersTable" class="display" cellspacing="0" width="100%">
        <thead><tr>

            <th><?php echo $this->Paginator->sort('id','ID'); ?></th>
            <th><?php echo $this->Paginator->sort('nazwa','Nazwa'); ?></th>
                        <th><?php echo $this->Paginator->sort('kodKreskowy','Kod EAN'); ?></th>
                        <th><?php echo $this->Paginator->sort('cenaSprzedazyBrutto','Cena sprzedaży brutto'); ?></th>                       
                        <th>Cena Promocyjna</th>
                        <th>Akcja</th>
        </tr>
       </thead>
        <tbody>
       <?php $x =0;?>
        <?php foreach ($goods as $good): ?>
        <tr>


            <td><?php echo h($goodID= $good['Good']['id']);?></td>
            <td><?php echo h($good['Good']['nazwa']);?></td>
            <td><?php echo h($good['Good']['kodKreskowy']);?></td>
            <td><?php echo h($good['Good']['cenaSprzedazyBrutto']);?></td>
            <?php echo $this->Form->input('promotionaloffer_id',array("default"=>$prom['Promotionaloffer']['id'],'type'=>'hidden'));?>
            <?php echo $this->Form->input('good_id',array("default"=>$good['Good']['id'],'type'=>'hidden'));?>
            <td><?php echo $this->Form->input('cenaPromocyjna', array('id' => 'cenaPromocyjna'.$x));?></td>

        </tr>
        <?php $x = $x + 1 ;?>
        <?php endforeach; ?>


        </tbody>
    </table>
    <?php echo $this->Form->end(__('Dodaj')); ?>

这是控制器:

if ($this->request->is('post')) {
                        debug($this->request->data);
}

当我调试时,我得到了这个:

\app\Controller\GoodsandoffersController.php (line 110)
array(
    'Goodsandoffer' => array(
        'promotionaloffer_id' => '3',
        'good_id' => '20',
        'cenaPromocyjna' => '3'
    )
)

在数组中,我只有表中的最后一项。我需要一切。我做错了什么?

1 个答案:

答案 0 :(得分:0)

我自己并不熟悉CakePHP,但看起来你的表行中的所有字段都具有相同的名称(promotionaloffer_id,good_id,cenaPromocyjna):

        <?php echo $this->Form->input('promotionaloffer_id',array("default"=>$prom['Promotionaloffer']['id'],'type'=>'hidden'));?>
        <?php echo $this->Form->input('good_id',array("default"=>$good['Good']['id'],'type'=>'hidden'));?>
        <td><?php echo $this->Form->input('cenaPromocyjna', array('id' => 'cenaPromocyjna'.$x));?></td>

为了接收所有值,您需要使用数组键来表示它们,如下所示:

        <?php echo $this->Form->input('promotionaloffer_id['.$good['Good']['id'].']',array("default"=>$prom['Promotionaloffer']['id'],'type'=>'hidden'));?>
        <?php echo $this->Form->input('good_id['.$good['Good']['id'].']',array("default"=>$good['Good']['id'],'type'=>'hidden'));?>
        <td><?php echo $this->Form->input('cenaPromocyjna['.$good['Good']['id'].']', array('id' => 'cenaPromocyjna'.$x));?></td>

这将导致输入名称,如

  • promotionaloffer_id [0],good_id [0],cenaPromocyjna [0]
  • promotionaloffer_id [1],good_id [1],cenaPromocyjna [1]
  • ...
  • promotionaloffer_id [x],good_id [x],cenaPromocyjna [x]

其中x是好身份。