Php 是的。表单获取输入Id

Php 是的。表单获取输入Id,php,yii2,active-form,Php,Yii2,Active Form,为了在js中使用它,我正在尝试设置一个字段的ID。我阅读了Yi2文档,发现ActiveField有一个方法“getInputId”,但我该如何调用它呢 <?php $form = ActiveForm::begin(); ?> <?= $form->field($model, 'name')->textInput(['maxlength' => true]) ?> <?php $form->end(); ?> 我可

为了在js中使用它,我正在尝试设置一个字段的ID。我阅读了Yi2文档,发现ActiveField有一个方法“getInputId”,但我该如何调用它呢

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

我可以将$form->field中的结果保存在一个var中,但它是一个字符串,所以不能这样使用它


我一直在检查ActiveForm代码,我发现它有两种方法:beginField和endField,也许有什么关系?任何想法都将不胜感激。

我找到了一个很好的解决方案。Html帮助程序中有一个方法“getInputId”。 我原来的问题尚未解决。如何使用activeField中的“getInputId”方法

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

默认情况下,该字段的id为
$model-$attribute
,即

如果您使用的是
用户
型号和
用户名
格式,即

<?= $form->field($model, 'username')->textInput(['maxlength' => true]) ?>
在这种情况下,输入的id将是
my\u id

根据最新评论进行编辑:(我没有尝试过,但根据文档进行了解释)

由于
textInput
函数是return$
this

因此,
getInputId
()必须可以作为

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

但根据文档,这是受保护的方法,因此无法在类外调用

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