@VitaliyKaliuzhyn

Условия для вывода input?

Есть таблица которая формируется так
<?php Pjax::begin(); ?>
    <?= GridView::widget([
        'filterUrl' => Yii::$app->map->getByAlias('/mig.modules.admin.modules.users/list')->getUrl(),
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'columns' => [
            ['class' => 'yii\grid\SerialColumn'],
            'id',
            'group.name',
            'title',
            'name',
            'value',
            'typeof',

            ['class' => 'yii\grid\ActionColumn'],
        ],
    ]); ?>
    <?php Pjax::end(); ?>

она дает вывод

<tr data-key="4"><td>1</td><td>4</td><td>Регистрация</td><td>Требовать капчу?</td><td>isRequireCaptcha</td><td>5</td><td>boolean</td><td><a href="" title="View" aria-label="View" data-pjax="0"><span class="glyphicon glyphicon-eye-open"></span></a> <a href="" title="Update" aria-label="Update" data-pjax="0"><span class="glyphicon glyphicon-pencil"></span></a> <a href="" title="Delete" aria-label="Delete" data-confirm="Are you sure you want to delete this item?" data-method="post" data-pjax="0"><span class="glyphicon glyphicon-trash"></span></a></td></tr>


При клике на редактирование попадаем во вьюху, в которой должно отображатся поле в зависимости от типа данных. В данном примере тип данных boolean значит вьюха должна вывести радиолист, если тип редактируемого поля стринг тогда поле должно обыкновенный инпут

вот сам код вьюхи
<?php $form = ActiveForm::begin(['fieldClass' => 'mig\themes\metronic\admin\widgets\ActiveField', 'options' => ['class' => 'form-horizontal']]); ?>

    <?= $form->field($model, 'value', ['labelOptions' => ['class' => 'col-md-1 control-label']])->textInput(['maxlength' => true, 'class' => 'col-md-3']) ?>
    
    <div class="form-group">
        <?= Html::submitButton(Yii::t('app', 'Сохранить'), ['class' => 'btn btn-primary']) ?>
    </div>
    <?php ActiveForm::end(); ?>


Подскажите как это можно реализовать в рамках одной вьюхи
  • Вопрос задан
  • 159 просмотров
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Варианта два. Либо сделать связанную таблицу или таблицы в которых хранить это. Или хранить в виде json в одной ячейке, хранить данные и тип поля. В зависимости от типа выводить дропдаун или инпут или виджет какой-нибудь. В случае с json сортировать или искать по этой ячейке будет невозможно, но проще в реализации.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@VitaliyKaliuzhyn Автор вопроса
По факту есть таблица с полем typeof в котором указывается тип поля, вот вопрос в том как на основании этого поля выводить во вьюху то или иное поле
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы