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