[英]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.