2013-02-24 144 views
0

我希望在cakephp的页面上的每个表格行下都有多个表单。我不知道如何更改输入名称以允许这样做。cakephp多种形式

<table cellpadding="0" cellspacing="0"> 
    <tr> 
      <th><?php echo $this->Paginator->sort('id'); ?></th> 
      <th><?php echo $this->Paginator->sort('member_no'); ?></th> 
      <th><?php echo $this->Paginator->sort('first_name'); ?></th> 
      <th><?php echo $this->Paginator->sort('last_name'); ?></th> 
      <th><?php echo $this->Paginator->sort('total_points'); ?></th> 
      <th><?php echo $this->Paginator->sort('date_joined'); ?></th> 
      <th class="actions"><?php echo __('Actions'); ?></th> 
    </tr> 
    <?php foreach ($members as $member): ?> 
    <tr> 
     <td><?php echo h($member['Member']['id']); ?>&nbsp;</td> 
     <td><?php echo h($member['Member']['member_no']); ?>&nbsp;</td> 
     <td><?php echo h($member['Member']['first_name']); ?>&nbsp;</td> 
     <td><?php echo h($member['Member']['last_name']); ?>&nbsp;</td> 
     <td><?php echo h($member['Member']['total_points']); ?>&nbsp;</td> 
     <td><?php echo h($member['Member']['date_joined']); ?>&nbsp;</td> 
     <td class="actions"> 
      <?php echo $this->Html->link(__('View'), array('action' => 'view', $member['Member']['id'])); ?> 
      <?php echo $this->Html->link(__('Edit'), array('action' => 'edit', $member['Member']['id'])); ?> 
      <?php echo $this->Form->postLink(__('Delete'), array('action' => 'delete', $member['Member']['id']), null, __('Are you sure you want to delete # %s?', $member['Member']['id'])); ?> 
     </td> 
    </tr> 
    <tr> 
     /// This is the form for each record 
     <td> 
      <?php echo $this->Form->create('Point', array('action' => 'add')); ?> 
       <fieldset> 
        <legend><?php echo __('Add Point'); ?></legend> 
       <?php 
        echo $this->Form->input('member_id',array('type'=>'hidden', 'value'=>$member['Member']['id'])); 
        echo $this->Form->input('points'); 
       ?> 
       </fieldset> 
      <?php echo $this->Form->end(__('Submit')); ?> 
     </td> 
    </tr> 
<?php endforeach; ?> 
    </table> 

回答

0

CakePHP将生成正常的表格,只要它们是唯一命名的。你可能会考虑追加会员ID到形式的名称:

<?php echo $this->Form->create('Point'.$member['Member']['id'], array('action' => 'add')); ?> 

你可以使用这个(或您想任何其他方法),使形式独特。您也可能会遇到非唯一字段名称的问题。在这种情况下,如果来自同一个控制器,则使用类似的技巧在所有形式和字段中都有唯一的字段名称。

+0

我想到了这一点,但我缺少Point1s控制器 – 2013-02-25 17:46:58

+0

如果命名表单不同,你将不得不手动指定控制器。 (''成员'] ['id'],数组('controller'=>'myController','action'=>'add' )); ?>' – swiecki 2013-02-27 03:40:35