yii2 убрать в форме у имён полей префикс имени модели

298
19 августа 2017, 03:09

Как убрать в форме у имён полей префикс имени модели. Сейчас поля такие (смотри ниже). У текстового поля значение атрибута name="People[registration]". такие имена генерируются по-умолчанию. Как убрать префикс People (это имя модели).

<input type="text" id="people-registration" class="form-control" name="People[registration]" placeholder="Адрес регистрации">

Форму создаю так

<?php $form = ActiveForm::begin([
    'id' => 'peoples_form',
    'action' => ['/site/add-new-people'],
]); ?>
<?= $form->field($peopleModel, 'registration')->textInput(['placeholder' => $peopleModel->getAttributeLabel('registration')])->label(false) ?>
<div class="form-group">
<?= Html::submitButton('Добавить', ['class' => 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
Answer 1

Можно избавиться от префикса, если переопределить метод модели formName и передать аргументом пустую строку перед тем, как скармливать модель форме:

  Model::formName("");

Источник

The form name is mainly used by yii\widgets\ActiveForm to determine how to name the input fields for the attributes in a model. If the form name is "A" and an attribute name is "b", then the corresponding input name would be "A[b]". If the form name is an empty string, then the input name would be "b".

READ ALSO
Убрать keyboard после клика telegram bot

Убрать keyboard после клика telegram bot

Бот создает клавиатуру в ответе:

754
Вырезать последний тег и его содержимое

Вырезать последний тег и его содержимое

ЗдравствуйтеЕсть текст, в котором следующие содержание:

287
Кто должен отдать данные в шаблон?

Кто должен отдать данные в шаблон?

Есть такой код в роутере:

262
Как организовать запрос ElasticSearch?

Как организовать запрос ElasticSearch?

Вот проиндексированые атрибуты

299