複数のモデルがあるフォームがあります。1つのモデルは1つのレコードを表示し、他のモデルは複数のレコードを表形式で表示します。保存するために送信すると、各モデルから最後のレコードのみが取得されます。モデルのすべてのレコードを取得するにはどうすればよいですか?
これは、フォームに表形式のモデルをレンダリングする方法のサンプルです。
// lines tab
$lineListContent = "<div id='form_line_list'>
<table>
<tr>
<th>JOBNO</th>
<th>NAME</th>
<th>SEQ</th>
<th>DATEIN</th>
<th>DATEDONE</th>
<th>STATUS</th>
<th>PCENthONE</th>
<th>EARNED</th>
<th>VALUE</th>
<th>COMMENTS</th>
<th>SENTBACK</th>
<th>DATEDUE</th>
<th>ORIGTAPES</th>
</tr>
";
$lineListContentRows = null;
foreach ($jobs as $i=>$item){
$lineListContentRows = $lineListContentRows . $this->renderPartial('/jobs/_form', array('model'=>$item,'form'=>$form),TRUE);
}
$lineListContent = $lineListContent . $lineListContentRows . "
</table></div>";
forループは、そのモデルの入力フィールドを取得します
_形
<?php
/* @var $this JobsController */
/* @var $model Jobs */
/* @var $form CActiveForm */
?>
<div class="form">
<tr>
<td><?php echo $form->textField($model,'JOBNO'); ?></td>
<td><?php echo $form->textField($model,'NAME'); ?></td>
<td><?php echo $form->textField($model,'SEQ'); ?></td>
<td><?php echo $form->textField($model,'DATEIN'); ?></td>
<td><?php echo $form->textField($model,'DATEDONE'); ?></td>
<td><?php echo $form->textField($model,'STATUS'); ?></td>
<td><?php echo $form->textField($model,'PCENTDONE'); ?></td>
<td><?php echo $form->textField($model,'EARNED'); ?></td>
<td><?php echo $form->textField($model,'VALUE'); ?></td>
<td><?php echo $form->textField($model,'COMMENTS'); ?></td>
<td><?php echo $form->textField($model,'SENTBACK'); ?></td>
<td><?php echo $form->textField($model,'DATEDUE'); ?></td>
<td><?php echo $form->textField($model,'ORIGTAPES'); ?></td>
</tr>
</div><!-- form -->