Как создать динамическое поле в Yii2?

У меня есть одна таблица, в которой я сохраняю имя поля. Теперь я хочу использовать эти поля в другой модели. Итак, как я могу дать имя этому полю?

например У меня есть таблица с именем Config с fields(id,key). Данные могут быть

1, Blog url
2, Site url

Теперь у меня есть 1 форма, где администратор будет добавлять эти значения в базу данных.

В Yii2 мы создаем поле ввода, например

<?= $form->field($model, 'name')->textInput() ?>

Но я хочу создать два текстовых поля с именами blog url и site url. Итак, как я могу его создать? Что я должен написать вместо name?


person Yii2 Tech    schedule 11.05.2015    source источник
comment
Добро пожаловать в СО. Пожалуйста, отформатируйте свой вопрос. Используйте (встроенные) блоки кода. Посетите справочный центр.   -  person robsch    schedule 11.05.2015
comment
Ваш вопрос не очень ясен. Вы пытаетесь использовать табличные данные[1]? Если да, пытаетесь ли вы поместить разные label[2] для каждого поля? [1]yiiframework.com/doc-2.0/guide-input -tabular-input.html [2]yiiframework.com/doc-2.0/   -  person sdlins    schedule 27.04.2016


Ответы (1)


запустите этот код в командной строке

php composer.phar require --prefer-dist wbraganca/yii2-dynamicform "*"

после завершения вышеуказанного кода.

добавьте следующий код в форму. _form.php

<div class="panel panel-default">
    <div class="panel-heading"><h4><i class="glyphicon glyphicon-envelope"></i> Addresses</h4></div>
    <div class="panel-body">
         <?php DynamicFormWidget::begin([
            'widgetContainer' => 'dynamicform_wrapper', // required: only alphanumeric characters plus "_" [A-Za-z0-9_]
            'widgetBody' => '.container-items', // required: css class selector
            'widgetItem' => '.item', // required: css class
            'limit' => 4, // the maximum times, an element can be cloned (default 999)
            'min' => 1, // 0 or 1 (default 1)
            'insertButton' => '.add-item', // css class
            'deleteButton' => '.remove-item', // css class
            'model' => $modelsAddress[0],
            'formId' => 'dynamic-form',
            'formFields' => [
                'name',
            ],
        ]); ?>

        <div class="container-items"><!-- widgetContainer -->
        <?php foreach ($modelsAddress as $i => $modelAddress): ?>
            <div class="item panel panel-default"><!-- widgetBody -->
                <div class="panel-heading">
                    <h3 class="panel-title pull-left">Address</h3>
                    <div class="pull-right">
                        <button type="button" class="add-item btn btn-success btn-xs"><i class="glyphicon glyphicon-plus"></i></button>
                        <button type="button" class="remove-item btn btn-danger btn-xs"><i class="glyphicon glyphicon-minus"></i></button>
                    </div>
                    <div class="clearfix"></div>
                </div>
                <div class="panel-body">
                    <?php
                        // necessary for update action.
                        if (! $modelAddress->isNewRecord) {
                            echo Html::activeHiddenInput($modelAddress, "[{$i}]id");
                        }
                    ?>
                    <?= $form->field($model, "[{$i}]name")->textInput(['maxlength' => true]) ?>

                </div>
            </div>
        <?php endforeach; ?>
        </div>
        <?php DynamicFormWidget::end(); ?>
    </div>
</div>
person Kalai S    schedule 18.05.2015
comment
Ответы только по ссылкам не приветствуются в StackOverflow. Пожалуйста, добавьте существенную часть к ответу. - person arogachev; 18.05.2015