ActiveForm field auto placeholder from attributeLabel

Предварительное обсуждение найденных ошибок перед отправкой их авторам фреймворка, а также внесение новых предложений.
Ответить
Аватара пользователя
futbolim
Сообщения: 2051
Зарегистрирован: 2012.07.08, 19:28

ActiveForm field auto placeholder from attributeLabel

Сообщение futbolim »

Не знаю, прдложение получится актуально или нет, но поробую...
В коде этого не нашёл.
Есть ActiveForm. В нём есть поля. В полях есть плейсхолдеры:

Код: Выделить всё

<?= $form->field($model, 'contact_phone', ['template'=>'{input}{error}'])->textInput(['placeholder' => 'Контактный номер телефона']) ?>
Предлагаю, сделать переключатель на уровне ActiveForm, например:

Код: Выделить всё

$form = ActiveForm::begin([
        'id' => 'form-lounge-create',
        'placeholdersFromLabels' => true
    ]); ?>
Плюсы:
1. Как Вы уже догадались, все поля укарачиваются почти вдвое к такому виду:

Код: Выделить всё

<?= $form->field($model, 'contact_phone', ['template'=>'{input}{error}'])->textInput() ?>
2. Не нужно ручками вводить плейсхолдеры, а главное править их в двух местах для синхронизации
Минусы: пока не вижу

Это было бы очень удобно, особенно в bootstrap стиле написания сайтов.
Спасибо.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: ActiveForm field auto placeholder from attributeLabel

Сообщение zelenin »

да, неплохо было бы такую фичу в принципе.

Поправлю ваш код

Код: Выделить всё

<?= $form->field($model, 'contact_phone', ['template'=>'{input}{error}'])->textInput(['placeholder' => $model->getAttributeLabel( 'contact_phone' )]) ?>
так не надо синхронизировать
Аватара пользователя
futbolim
Сообщения: 2051
Зарегистрирован: 2012.07.08, 19:28

Re: ActiveForm field auto placeholder from attributeLabel

Сообщение futbolim »

zelenin писал(а):да, неплохо было бы такую фичу в принципе.

Поправлю ваш код

Код: Выделить всё

<?= $form->field($model, 'contact_phone', ['template'=>'{input}{error}'])->textInput(['placeholder' => $model->getAttributeLabel( 'contact_phone' )]) ?>
так не надо синхронизировать
зато надо это писать )
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: ActiveForm field auto placeholder from attributeLabel

Сообщение zelenin »

futbolim писал(а):
zelenin писал(а):да, неплохо было бы такую фичу в принципе.

Поправлю ваш код

Код: Выделить всё

<?= $form->field($model, 'contact_phone', ['template'=>'{input}{error}'])->textInput(['placeholder' => $model->getAttributeLabel( 'contact_phone' )]) ?>
так не надо синхронизировать
зато надо это писать )
а вашем примере писать и исправлять.
Аватара пользователя
vova07
Сообщения: 1004
Зарегистрирован: 2012.11.29, 14:52
Откуда: Chisinau, Moldova

Re: ActiveForm field auto placeholder from attributeLabel

Сообщение vova07 »

Не знаю на сколько это правильно делать такое в фрейме, но идею я поддерживаю. Лично мне это тоже было бы полезно. + добавить глобальную настройку для всех полей формы как в случае с "template" для всех или для частного случая.
Аватара пользователя
futbolim
Сообщения: 2051
Зарегистрирован: 2012.07.08, 19:28

Re: ActiveForm field auto placeholder from attributeLabel

Сообщение futbolim »

zelenin писал(а): а вашем примере писать и исправлять.
Не понял. В каком примере ?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: ActiveForm field auto placeholder from attributeLabel

Сообщение zelenin »

futbolim писал(а):
zelenin писал(а): а вашем примере писать и исправлять.
Не понял. В каком примере ?

Код: Выделить всё

<?= $form->field($model, 'contact_phone', ['template'=>'{input}{error}'])->textInput(['placeholder' => 'Контактный номер телефона']) ?>
против

Код: Выделить всё

<?= $form->field($model, 'contact_phone', ['template'=>'{input}{error}'])->textInput(['placeholder' => $model->getAttributeLabel( 'contact_phone' )]) ?>
Аватара пользователя
futbolim
Сообщения: 2051
Зарегистрирован: 2012.07.08, 19:28

Re: ActiveForm field auto placeholder from attributeLabel

Сообщение futbolim »

zelenin писал(а):
futbolim писал(а):
zelenin писал(а): а вашем примере писать и исправлять.
Не понял. В каком примере ?

Код: Выделить всё

<?= $form->field($model, 'contact_phone', ['template'=>'{input}{error}'])->textInput(['placeholder' => 'Контактный номер телефона']) ?>
против

Код: Выделить всё

<?= $form->field($model, 'contact_phone', ['template'=>'{input}{error}'])->textInput(['placeholder' => $model->getAttributeLabel( 'contact_phone' )]) ?>
Перечитайте пост. Вот мой пример:

Код: Выделить всё

    <?= $form->field($model, 'contact_phone', ['template'=>'{input}{error}'])->textInput() ?>
Удачи!
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: ActiveForm field auto placeholder from attributeLabel

Сообщение zelenin »

futbolim писал(а):Перечитайте пост. Вот мой пример:

Код: Выделить всё

    <?= $form->field($model, 'contact_phone', ['template'=>'{input}{error}'])->textInput() ?>
Удачи!
Сами свой пост перечитайте и мой ответ.
я не про ваше предложение, а про ваше текущее использование. В качестве одной из проблем вы назвали синхронизацию лейблов - я показал, как можно обойтись без этого.
Аватара пользователя
twix
Сообщения: 86
Зарегистрирован: 2011.12.12, 18:25

Re: ActiveForm field auto placeholder from attributeLabel

Сообщение twix »

zelenin писал(а):
futbolim писал(а):
zelenin писал(а): а вашем примере писать и исправлять.
Не понял. В каком примере ?

Код: Выделить всё

<?= $form->field($model, 'contact_phone', ['template'=>'{input}{error}'])->textInput(['placeholder' => 'Контактный номер телефона']) ?>
против

Код: Выделить всё

<?= $form->field($model, 'contact_phone', ['template'=>'{input}{error}'])->textInput(['placeholder' => $model->getAttributeLabel( 'contact_phone' )]) ?>
Ваш пример показывает как использовать имена полей модели в placeholder.
Но мне кажется основная идея у ТП была уменьшить код.
Я лично тоже за. Почему бы не упростить типичные действия? Мне вот порой так лень писать эти лишние портянки :?
Ответить