0

我正在尝试使用表单数据保存同一模型的多个实例。但是这两个实例都保存了重复的数据,即第二个实例的值。这是我的控制器代码,

    $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]);
    }

第一个实例总是被第二个实例值替换。

表单字段示例是,

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

我应该怎么做才能使第一个值不会被第二个值替换?

4

2 回答 2

1

在视图中应该是:

<?= $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

于 2015-02-23T09:20:06.657 回答
0

前任。创建新模型类“AnotherOrderItems”,然后扩展 OrderItems;

$orderItems1 = new OrderItems();
$orderItems2 = new AnotherOrderItems();
于 2015-02-23T19:19:41.757 回答