繁体   English   中英

Yii2 同一模型的多个实例与 javascript

[英]Yii2 multiple instances of the same model with javascript

我正在尝试使用 javascript append 使用同一模型的多个实例。 但是,我不知道该怎么做。 因此,我创建了以下代码。

javascript

var div_input = $('#input');
div_input.append('<input type="hidden" name="'+c+'_round" value="'+c+'" />');

变量“c”是一个递增的运行数。 例如,我第一次附加名称将是“1_round”。 第二次将是“2_round”,依此类推。

控制器

 $loop = true;
    $i = 0;
    do{
        $i++;
        if (!empty($_POST[$i . "_round"]))
        {
            $round = $_POST[$i . "_round"];
            $model->model_round= $round;
            $model->save();
        }else{
            $loop = false;
        }
    }while($loop);

这里的问题是它总是只保存最后一个数据循环而不是每个数据循环。 请帮我解决这个问题。 Yii2 的新手。 谢谢!

您必须每次在循环中初始化$model新实例

    $saved_array = [];
    $loop = true;
    $i = 0;
    do{
        $i++;
        if (!empty($_POST[$i . "_round"]))
        {
            $model = new model();
            $round = $_POST[$i . "_round"];
            $model->model_round= $round;
            if($model->save()) {
                $saved_array[$model->id] = True;
            } else {
                $saved_array[$model->id] = $model->getErrors();
            }
            unset ($model);
        }else{
            $loop = false;
        }
    }while($loop);

您最终可以分析模型是否已保存,如果未保存,则$saved_array有哪些错误

为什么不使用输入名称作为数组

<input name="round[]">

然后循环

$round = $_POST['round'];
foreach( $round as $key => $n ) {
// code here
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM