2015-05-11 2 views
0

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

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

1, Blog url 
2, Site url 

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

В Yii2 мы создаем поле ввода, как

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

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

+1

Добро пожаловать в СО. Пожалуйста, отформатируйте свой вопрос. Используйте (встроенные) кодовые блоки. Проверьте [помощь]. – robsch

+0

Ваш вопрос не очень ясен. Вы пытаетесь использовать табличные данные [1]? Если да, пытаетесь ли вы поместить для каждого поля другую «метку» [2]? [1] http://www.yiiframework.com/doc-2.0/guide-input-tabular-input.html [2] http://www.yiiframework.com/doc-2.0/yii-widgets- activefield.html # label() - detail – slinstj

ответ

0

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

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> 
+0

Ссылка только ответы не принимаются в StackOverflow. Пожалуйста, добавьте важную часть ответа. – arogachev

Смежные вопросы