簡體   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