我正在尝试使用表单数据保存同一模型的多个实例。但是这两个实例都保存了重复数据,即第二个实例的e值。这是我的控制器代码,
$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() ?>
我该怎么办才能将第一个值替换为第二个值?
答案 0 :(得分: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
答案 1 :(得分:0)
实施例。创建新的模型类“AnotherOrderItems”然后扩展OrderItems;
$orderItems1 = new OrderItems();
$orderItems2 = new AnotherOrderItems();