Я изо всех сил пытаюсь изменить некоторые данные, которые я передаю в listView
с ActiveDataProvider
.
Это часть моего _form.php
Модель здесь представляет Продукт.
_form.php
use common\models\Product
<?php $form = ActiveForm::begin();?>
<?php echo
ListView::widget([
'dataProvider' => new yii\data\ActiveDataProvider
([
'query' => common\models\productsAdditionalInfo::find()->where(['code' => $productsArray]),
'pagination' => false,
]),
'itemView' => '_list-grammature',
]);
?>
<?php ActiveForm::end();?>
В моем _list-grammature.php
я в основном отображаю данные из productsAdditionalInfo
, который также является контейнером, который берет данные из других таблиц.
_list-grammature.php
<?php
$additionalInfoForm = ActiveForm::begin(
[
'id' => "form-grammatura-{$idFormAndButton}",
'method' => 'post',
'action' => ['backend\controllers\productsAdditionalInfoController/updateProductsAdditionalInfo'],
]
);
?>
<th colspan="4">Factory</th>
</tr>
<?php
echo $this->render(
'items/_factory-list',
[
'form' => $form,
'forCode' => $model->code,
'factories' => $model->factories,
]
);
?>
</tbody>
<tbody>
<tr>
<th colspan="4">Raw Materials</th>
</tr>
<?php
echo $this->render(
'items/_raw-materials-list',
[
'form' => $form, 'forCode' => $model->code,
'rawMaterials' => $model->rawMaterials,
]
);
echo Html::submitButton(
'<i class="fas fa-cloud-upload"></i> Save',
[
'id' => "btn-save-{$model->firm_id}",
'class' => 'btn btn-primary has-icon-left px-4 mx-2 elevation-5',
]
)
?>
<?php $additionalInfoForm->end();?>
Я взял только небольшую часть страницы, чтобы дать намек на ее поведение.
В основном часть рендеринга работает так, как я ожидал, но когда я пытаюсь изменить различные textArea/input и отправить изменения, страница по-прежнему привязана к модели Products
, а не к моей модели ProductsAdditionalInfo
.
Строка запроса в соответствии с тем, что я говорю:
http:/.../backend/PRODUCTS/update?id=10
Я не знаю, выполняю ли я законную операцию, я в основном вставляю в ActiveForm списокView, который создает несколько ActiveForms из другой модели, но когда я пытаюсь отправить одну из внутренних ActiveForms, она обновляется (без данных ) модель внешней ActiveForm.
Что, на мой взгляд, я думал получить:
<form Product>
<form1 productsAdditionalInfo>
<button1 submit data to productAddionalInfo>
</form1 productsAdditionalInfo>
<form2 productsAdditionalInfo>
<button2 submit data to productAddionalInfo>
</form2 productsAdditionalInfo>
<Button submit Product>
</form Product>
Что вместо этого я получаю:
<form Product>
<div data-key=Product1>
<button1>
</div data-key=Product1>
<div data-key=Product2>
<button2>
</div data-key=Product2>
<Button submit Product>
</form Product>
form
определяется как Контент Flow, но без потомков элемента формы. вы не можете этого сделать, вы переноситеListView
вActiveForm
, а затем запускаете другую форму внутри_list-grammature
, вам нужно пересмотреть свою логику - person Muhammad Omer Aslam   schedule 13.01.2020ActiveForm
. - person Muhammad Omer Aslam   schedule 13.01.2020