Простой вопрос, но решения пока нет. Как известноYii2, Имена полей и форм
<?php $form = ActiveForm::begin(['method'=>'get']); ?>
<?= $form->field($formFilter, 'keyword')
->textInput(['placeholder' => \Yii::t('', 'keyword')]); ?>
...
создаст простую форму и поля ввода. Конечно, мы будем загружать $ _POST данные в действии, как
if ($this->isPost() && $formFilter->load($this->post())) {
if ($formFilter->validate()) {
...
Если мы будем смотреть в $ _POST мы увидим что-то вроде FormFilter[keyword]
как имя поля. Вопрос в том, как я могу его изменить? Мне нужно (я думаю) каким-то образом изменить в форме \ модель не в виду, потому что нам нужна правильная загрузка в действии.
Где он будет использоваться? Любая форма GET покажет уродливый url с именами классов, например, используя простые действия и модели, мы получим FormFilter[keyword]
, но я хочу изменить его на keyword
, поэтому URL будет более понятным, чем «имена длинного поля».
Кто-нибудь знает, как с этим справиться?
Какова цель удаления контейнера formName из $ _POST vars? Таким образом, вы не можете использовать массовые назначения из формы. –
Я думаю, что основной случай использования это в формах поиска с несколькими входами (например, определение шины или обода и добавление этой информации в url (_GET), чтобы мы получили чистые и понятные для человека URL-адреса –
@FabrizioCaldarelli должен быть таким же, как для $ _GET один, если вы хотите удалить className в ключах $ _POST var, просто измените метод 'formName' в форме \ model. Выскажите форму рендеринга модели (view), и вы увидите, как создает имя name =" fileName ". – user1954544