Yii2, визуализировать ActiveForms из другой модели внутри ListView

Я изо всех сил пытаюсь изменить некоторые данные, которые я передаю в 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>

person Pickeroll    schedule 13.01.2020    source источник
comment
чувак, вы вкладываете формы, что в любом случае не разрешено, Модель контента элемента form определяется как Контент Flow, но без потомков элемента формы. вы не можете этого сделать, вы переносите ListView в ActiveForm, а затем запускаете другую форму внутри _list-grammature, вам нужно пересмотреть свою логику   -  person Muhammad Omer Aslam    schedule 13.01.2020
comment
прежде всего, каковы ваши требования? нет ли какого-либо расширения/виджета с открытым исходным кодом, которое может сделать эту работу за вас? или избавиться от самого внешнего ActiveForm.   -  person Muhammad Omer Aslam    schedule 13.01.2020
comment
Спасибо за ответы. Да, я намеревался вложить элемент формы, внешнюю форму, которая настраивает ПРОДУКТ, и некоторые внутренние формы со спецификациями продуктов из других отношений. Нажав кнопку отправки во внутренней форме, я могу обновить каждую спецификацию, а нажав кнопку отправки во внешней форме, я могу обновить продукт. Прежде чем вы ответите, я удалил внешнюю активную форму, и теперь я могу обновить каждую внутреннюю форму, но таким образом я думаю, что потерял возможность обновлять один продукт. Я не знаю, есть ли расширение, которое может мне помочь.   -  person Pickeroll    schedule 14.01.2020
comment
stackoverflow.com/questions/32585832/yii-2-nested-forms я нашел что-то похожее на к чему я стремлюсь.   -  person Pickeroll    schedule 14.01.2020