【问题标题】:Problems using nested dynamic forms in yii2在 yii2 中使用嵌套动态表单的问题
【发布时间】:2018-03-28 20:41:19
【问题描述】:

我正在尝试使用此 yii2 widget 并遵循此 guide 使用嵌套动态表单,但每当我尝试将第二个动态表单嵌套在第一个表单中时,我都会收到错误提示

TypeError
Argument 1 passed to DOMDocument::importNode() must be an instance of DOMNode, null given

如果我删除 <?php DynamicFormWidget::begin([...]):?><?php DynamicFormWidget::end()?> 页面加载(没有第二个动态表单的功能)。

我这里是处理嵌套动态表单的视图部分

<?php
    $form = ActiveForm::begin(['id'=> 'dynamic-form']);
    ?>

<?php DynamicFormWidget::begin([

            'widgetContainer' => 'dynamicform_wrapper',

            'widgetBody' => '.container-room-items',

            'widgetItem' => '.room-item',

            'limit' => 10,

            'min' => 1,

            'insertButton' => '.add-room',

            'deleteButton' => '.remove-room',

            'model' => $rooms[0],

            'formId' => 'dynamic-form',

            'formFields' => [
                'name',
                'description',
                'price',
                'room_capacity',
                'area'
            ],

        ]); ?>


        <table>
            ...
            <td>
                <?php foreach ($rooms as $indexRoom => $room): ?> 
                    ...
                    <?php DynamicFormWidget::begin([

                        'widgetContainer' => 'dynamicform_inner',

                        'widgetBody' => '.container-bed-items',

                        'widgetItem' => '.bed-item',

                        'limit' => 4,

                        'min' => 1,

                        'insertButton' => '.add-bed',

                        'deleteButton' => '.remove-bed',

                        'model' => $room_beds[$indexRoom][0],

                        'formId' => 'dynamic-form',

                        'formFields' => [
                            'bed_type_id',
                            'capacity'
                        ],

                    ]); ?>

                    <table>...</table>

                    <?php DynamicFormWidget::end(); //closing inner widget... errors happens on this line?>

                <?php endforeach; ?>
            </td>
        </table>
        <?php DynamicFormWidget::end(); ?>

    </div>

不确定缺少什么。非常感谢任何帮助,谢谢。

【问题讨论】:

  • 您正在为foreach 中的所有表单分配'formId' =&gt; 'dynamic-form' ?尝试使用 id 附加一个计数器

标签: php yii2 yii2-extension


【解决方案1】:

您缺少带有在小部件中配置的类的 html 标记。像这样的:

<div class="container-room-items">
   <div class="room-item">
     <table>
     ...
   </div>
</div>

此外,您需要用于插入/删除配置类的按钮。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-29
    • 1970-01-01
    相关资源
    最近更新 更多