Yii2 如何更改ActiveField的标签文本?

Yii2 如何更改ActiveField的标签文本?,yii2,active-form,Yii2,Active Form,我已经创建了一个新的Yii2基础项目,并希望深入研究 登录页面上有一个用户名字段: 我想将标签“用户名”更改为自定义标签,例如“我的超级标签”。 我已经阅读了手册: 经过一点调查,我得到了下一个结果: 我只更改了模板,它更改了布局: <?= $form->field($model, 'username', [ "template" => "<label> My superb label </label>\n{input}\n{hint}\n

我已经创建了一个新的Yii2基础项目,并希望深入研究

登录页面上有一个用户名字段:

我想将标签“用户名”更改为自定义标签,例如“我的超级标签”。 我已经阅读了手册:

经过一点调查,我得到了下一个结果:

我只更改了模板,它更改了布局:

<?= $form->field($model, 'username', [
    "template" => "<label> My superb label </label>\n{input}\n{hint}\n{error}"
])?>

如何以正确的方式更改标签的文本? 什么是最佳实践?


<?= $form->field($model, 'username')->textInput()->label('My superb label') ?>

好的,只需覆盖LoginForm.php中的属性标签:

/**
 * Returns the attribute labels.
 *
 * See Model class for more details
 *  
 * @return array attribute labels (name => label).
 */
public function attributeLabels()
{
    return [
        'username' => 'Логин',
        'password' => 'Пароль',
    ];
}

还有一种很酷的方式

<?= $form->field($model, 'username')->textInput(['class'=>'field-class'])->label('Your Label',['class'=>'label-class']) ?>

您还可以将此类功能添加到模型中:

public function attributeLabels()
{
    return [
        'username' => 'My Login',
        'password' => 'My Pasword',
        'rememberMe' => 'Remember Me, please',
    ];
}

只需从这样的模型中更改标签

'symptomsBefore' => Yii::t('app', 'Has The Patient Suffered from the same or similar symptoms before'),

真的帮了大忙你是个摇滚明星!由于我在单个模型上有多个路由/模板,所以属性选项不是我的选择。我个人认为这是正确的答案,因为问题并没有说明在所有情况下都应该改变标签。例如,考虑一个希望改变标签形式的模型,因为下拉正被用于一个相关的表值,而远程ID则显示在其他场景中。这很容易是一个注释,试图给出一个有意义的答案来支持你的答案。看看