2016-07-11 3 views
3

Я пытаюсь установить идентификатор поля, чтобы использовать его в js. Я прочитал документацию Yii2 и обнаружил, что у ActiveField есть метод getInputId, но как его назвать?Yii2. Form get Идентификатор ввода

<?php $form = ActiveForm::begin(); ?> 
     <?= $form->field($model, 'name')->textInput(['maxlength' => true]) ?> 
<?php $form->end(); ?> 

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

Я проверяю код ActiveForm, и я вижу, что он существует 2 метода: beginField и endField, возможно, что-то связанное с этим? любые идеи будут оценены.

ответ

2

По умолчанию идентификатор для он поля $model-$attribute т.е.

, если вы используете User модель и username поданную в форме т.е.

<?= $form->field($model, 'username')->textInput(['maxlength' => true]) ?> 

Идентификатор будет user-username

Вы также можете указать идентификатор вручную для поля, т.е.

<?= $form->field($model, 'username')->textInput(['maxlength' => true, 'id' => 'my_id']) ?> 

в этом случае идентификатор для входа будет my_id

Редактировать согласно последним комментарием: (я не пробовал это, но объяснить как в документации)

в textInput функция вернуть $ thishttp://www.yiiframework.com/doc-2.0/yii-widgets-activefield.html#textInput()-detail

так getInputId (http://www.yiiframework.com/doc-2.0/yii-widgets-activefield.html#getInputId()-detail) должны быть в состоянии назвать, как

<?php 
$form->field($model, 'username')->textInput(['maxlength' => true])->getInputId(); // this will not work 
?> 

НО это защищенный метод согласно документации, так не будут доступны для вызова снаружи класса

12

Я нашел хорошее решение. Существует метод getInputId из Html-помощника. Мой первоначальный вопрос еще не принят. Как использовать метод getInputId из activeField?

<?= Html::getInputId($model, 'phone'); ?> 

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

  • Нет связанных вопросов^_^