2016-10-01 2 views
1

Я использую рамки Yii2 PHP и используя ActiveField (Bootstrap Version) для создания полой формы, это делает использование $template имущества, которое включает в себя оберточные тег и такие ,Сформировать единое поле формы с ActiveField без использования шаблона в Yii2

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

Я спрашиваю, потому что я хочу, чтобы создать скрытое поле, которое я сейчас делаю такие как:

<?= $form->field($model, 'some_id')->hiddenInput(['value' => $some_id])->label(false); ?> 

Это прекрасно работает, однако потому что он заворачивает его в стандартном поле HTML, то margin-bottom Я добавил к этому классу .form-group и вызывает нежелательный запас.

Я знаю, что я могу вручную вставить это поле самостоятельно, но тогда он не получит правильное название формы для поля, например MyForm[some_id].

ответ

1

Основа информации, представленной answer я сделал немного больше расследования Киран Muralee и обнаружил, вы можете удалить элементы оболочки полностью и только выход фактического input поля, что я и хотел.

<?= $form->field($model, 'some_id', ['template' => '{input}', 
'options' => ['tag' => false]])->hiddenInput(['value' => $some_id])->label(false); ?> 

Примечание добавление 'tag' => false части внутри optionsмассива.

Примечание: Вы должны использовать Yii >=2.0.8 для этого, чтобы работать правильно, как там была ошибка до этого, заявил, как:

Enh # 10764: юй \ хелперы \ Html: : tag() и :: beginTag() возвращают содержимое без какого-либо HTML, если атрибут $ tag имеет значение false или null (pana1990)

+1

Yup хорошая информация, и если вы даете тег как «span», тогда поле будет окружено тегом span –

1

Попробуйте

<?= $form->field($model, 'some_id', 
      ['template' => '{input}{error}', 
      'options' => ['class' => 'your-class']]) -> 
      hiddenInput(["value" => $someVal, 
         "class" => "your-class" 
       ]) ?> 

Свойство опции определяет HTML-атрибутов (пары имя-значение) для контейнера поля tag.I думаю, что это будет решить вашу проблему как margin-bottom значение положить на классе form-group Безразлично» t влияют больше.

+0

Да, я знаю, но это предупреждение не позволит проверить поле. – Brett

+0

@Brett Хорошо. Теперь я отредактировал ответ, проведя некоторое исследование. Проверьте, требуется ли это именно вам. Я запретил добавление класса .form-group во входные данные, а также окружение div. –

+0

Ahhh, очень приятно. Это отлично работает! :) – Brett

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