1

请我在这里需要一个很大的帮助。我正在开发一个 yii 应用程序,我必须遍历我的表单并进行批量插入。我在 yii 中找到了 bacth update,但我看不到如何进行批量插入和验证。请帮忙。

这是我的观点:

<?php for($i=0;$i< $this->getDisplayArchModel();$i++) {?>
     <FIELDSET class="radios">
          <div class="row">
            <?php echo $form->labelEx($model,'competency_type'); ?>
    <?php echo $form->textField($model,'competency_type'); ?>
    <?php echo $form->error($model,'competency_type'); ?>
          </div>

         <div class="row">
    <?php echo $form->labelEx($model,'definition'); ?>
    <?php echo $form->textArea($model,'definition'); ?>
    <?php echo $form->error($model,'definition'); ?>
</div> 

          </fieldset>
       <?php } ?>

控制器 ::

public function actionDisplayArchModel()
    {

        $validateCat = $this->getDisplayArchModel();
        if($validateCat == NULL)
        $this->redirect(array('architecture'));

        $model = new CompetencyType;
        if(isset($_POST['CompetencyType']))
        {
            $model->attributes = $_POST['CompetencyType']; 
            if($model->validate()){
                foreach($_POST['CompetencyType'] as $value)
                {
                    echo $value;
                }

            }
        }
       $this->render('displayArchModel' ,array('model'=>$model));

    }
4

1 回答 1

0

有时我们想以批处理模式收集用户输入。也就是说,用户可以输入多个模型实例的信息并一次全部提交。我们称之为表格输入,因为输入字段通常以 HTML 表格形式呈现。

要使用表格输入,我们首先需要创建或填充模型实例数组,具体取决于我们是插入还是更新数据。然后我们从 $_POST 变量中检索用户输入数据并将其分配给每个模型。与单一模型输入的细微差别是我们使用 $_POST['ModelClass'][$i] 而不是 $_POST['ModelClass'] 检索输入数据。

更多关于收集表格输入

于 2012-07-19T05:39:04.503 回答