Использование нескольких экземпляров одной и той же модели сохраняет дублирующиеся данные в yii2.

Я пытаюсь сохранить несколько экземпляров одной и той же модели, используя данные формы. Но оба экземпляра сохраняют повторяющиеся данные, то есть значение для второго экземпляра. Вот мой код контроллера,

    $purchaseorder = new Purchaseorder();
    $orderItems1 = new OrderItems();
    $orderItems2 = new OrderItems();
    if ($purchaseorder->load(Yii::$app->request->post()) && $orderItems1->load(Yii::$app->request->post()) && $orderItems2->load(Yii::$app->request->post())) {
          $purchaseorder->save();
          $orderItems1->purchaseorder_id = $purchaseorder->purchaseorder_id;
          $orderItems1->save();      
          $orderItems2->purchaseorder_id = $purchaseorder->purchaseorder_id;
          $orderItems2->save();      
          return $this->redirect(['view', 'id' => $purchaseorder->purchaseorder_id]);
    }

1-й экземпляр всегда заменяется значениями 2-го экземпляра.

Примеры полей формы:

<?= $form->field($orderItems1, 'ordered_item')->textInput() ?>
<?= $form->field($orderItems2, 'ordered_item')->textInput() ?>

Что мне сделать, чтобы 1-е значение не было заменено 2-м значением?


person sidrat    schedule 22.02.2015    source источник
comment
вы можете найти решение здесь yiiframework.com/doc-2.0/ руководство-ввод-таблица-ввод.html   -  person ahb360    schedule 23.02.2015


Ответы (2)


В представлении должно быть:

<?= $form->field($orderItems1, '[]ordered_item')->textInput() ?>
<?= $form->field($orderItems2, '[]ordered_item')->textInput() ?>

И затем используйте Model::loadMultiple и Model::validateMultiple

Документация: http://www.yiiframework.com/doc-2.0/guide-input-tabular-input.html

person Timothée Planchais    schedule 23.02.2015

Бывший. создайте новый класс модели «AnotherOrderItems», затем расширьте OrderItems;

$orderItems1 = new OrderItems();
$orderItems2 = new AnotherOrderItems();
person yoshi    schedule 23.02.2015