Php 如何以迭代方式创建模型?

Php 如何以迭代方式创建模型?,php,yii,Php,Yii,作为Yii的初学者,我有一个问题,我想在迭代中创建模型。例如,我想为30名学生创建结果模型。如何在迭代中创建这些模型?我不能硬编码,因为学生人数可能因班级而异。 在这种方法中,我需要使用表格输入,但为此,我需要将每个模型的属性绑定到某个元素,如 textArea yii的最终指南介绍了此代码 <div class="form"> <?php echo CHtml::beginForm(); ?> <table> <tr><th>Nam

作为Yii的初学者,我有一个问题,我想在迭代中创建模型。例如,我想为30名学生创建结果模型。如何在迭代中创建这些模型?我不能硬编码,因为学生人数可能因班级而异。 在这种方法中,我需要使用表格输入,但为此,我需要将每个模型的属性绑定到某个元素,如

textArea
yii的最终指南介绍了此代码

<div class="form">
<?php echo CHtml::beginForm(); ?>
<table>
<tr><th>Name</th><th>Price</th><th>Count</th><th>Description</th></tr>
<?php foreach($items as $i=>$item): ?>
<tr>
<td><?php echo CHtml::activeTextField($item,"[$i]name"); ?></td>
<td><?php echo CHtml::activeTextField($item,"[$i]price"); ?></td>
<td><?php echo CHtml::activeTextField($item,"[$i]count"); ?></td>
<td><?php echo CHtml::activeTextArea($item,"[$i]description"); ?></td>
</tr>
<?php endforeach; ?>
</table>

<?php echo CHtml::submitButton('Save'); ?>
<?php echo CHtml::endForm(); ?>
</div><!-- form -->

添加隐藏字段数组以保留ID

<?php foreach($items as $i=>$item): ?>
    <tr>
    <td><?php echo CHtml::activeTextField($item,"[$i]name"); ?>
    <?php echo CHtml::hiddenField('stud_ids[]' , $i);?>
    </td>
    <td><?php echo CHtml::activeTextField($item,"[$i]price"); ?></td>
    <td><?php echo CHtml::activeTextField($item,"[$i]count"); ?></td>
    <td><?php echo CHtml::activeTextArea($item,"[$i]description"); ?></td>
    </tr>
    <?php endforeach; ?>

将此
$ids
传递到
foreach
以获取每个id并加载带有id的模型,然后更新记录。

每个学生都有单独的模型?是的,实际上我必须为结果创建一个模型,例如30名学生。不是硬编码而是可变的。然后我必须使用这些模型,每个学生都存储在不同的表格中?你们有30张桌子。?这不是一个好的实践。不确定你的问题是否正确,但是如果你想为很多表自动生成模型类,有一个叫做giic的扩展来做automatically@kumar,不,我没有这样做,实际上我必须输入30个学生的成绩,所以我需要输入30个记录(每个学生一个)。现在我想批量创建。
<?php foreach($items as $i=>$item): ?>
    <tr>
    <td><?php echo CHtml::activeTextField($item,"[$i]name"); ?>
    <?php echo CHtml::hiddenField('stud_ids[]' , $i);?>
    </td>
    <td><?php echo CHtml::activeTextField($item,"[$i]price"); ?></td>
    <td><?php echo CHtml::activeTextField($item,"[$i]count"); ?></td>
    <td><?php echo CHtml::activeTextArea($item,"[$i]description"); ?></td>
    </tr>
    <?php endforeach; ?>
$ids = $_POST["stud_ids"]