Нужно при помощи ActiveForm() сгенерировать со своим html, отличным от того, что генерируется по умолчанию.
Требуется получить такой html
Код: Выделить всё
<form name="appointment_form" id="appointment_form" method="post" action="#" onSubmit="return false">
<span class="input input--kohana">
<input class="input__field input__field--kohana" type="text" id="input-29" name="input-29" />
<label class="input__label input__label--kohana" for="input-29">
<i class="icon-user6 icon icon--kohana"></i>
<span class="input__label-content input__label-content--kohana">Your Name</span>
</label>
</span>
<!-- ОСТАЛЬНЫЕ ПОЛЯ ФОРМЫ -->
</form>
Код: Выделить всё
<?php
$form = ActiveForm::begin([
'id' => 'appointment_form',
'fieldConfig' => [
'options' => [
'tag' => 'span',
'class' => 'input input--kohana'
],
'template' => '{input}{label}',
'inputOptions' => ['class' => 'input__field input__field--kohana'],
'labelOptions' => [
'class' => 'input__label input__label--kohana',
]
]
]);
?>
<?= $form->field($model, 'name')->textInput()->label("<i class=\"icon-phone5 icon icon--kohana\"></i><span class=\"input__label-content input__label-content--kohana\">" . $model->getAttributeLabel('name') . "</span>") ?>
<!-- ОСТАЛЬНЫЕ ПОЛЯ ФОРМЫ -->
<?= $form->field($model, 'body')->textInput()->label() ?>
<?= Html::submitButton('Submit') ?>
<?php
ActiveForm::end();
?>
Но остался один вопрос.
Получается, что для каждого label() надо дублировать html.
Код: Выделить всё
->label("<i class=\"icon-phone5 icon icon--kohana\"></i><span class=\"input__label-content input__label-content--kohana\">" . $model->getAttributeLabel('name') . "</span>")