28

我创建了新的 Yii2 基础项目并想深入研究。

登录页面上有一个用户名字段: 在此处输入图像描述

我想将标签“用户名”更改为自定义标签,例如“我的超级标签”。我已阅读手册: http ://www.yiiframework.com/doc-2.0/yii-widgets-activefield.html

经过一番调查,我得到了下一个结果: 在此处输入图像描述

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

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

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

4

5 回答 5

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

http://www.yiiframework.com/doc-2.0/yii-bootstrap-activefield.html#label()-detail

于 2014-11-30T23:27:58.857 回答
21

还有另一种很酷的方法。

<?= $form->field($model, 'username')->textInput(['class'=>'field-class'])->label('Your Label',['class'=>'label-class']) ?>
于 2015-07-23T06:02:59.707 回答
19

好的,只需覆盖 LoginForm.php 中的 attributeLabels:

/**
 * Returns the attribute labels.
 *
 * See Model class for more details
 *  
 * @return array attribute labels (name => label).
 */
public function attributeLabels()
{
    return [
        'username' => 'Логин',
        'password' => 'Пароль',
    ];
}
于 2014-12-20T21:45:15.467 回答
2

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

public function attributeLabels()
{
    return [
        'username' => 'My Login',
        'password' => 'My Pasword',
        'rememberMe' => 'Remember Me, please',
    ];
}
于 2016-09-22T08:45:33.517 回答
0

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

'symptomsBefore' => Yii::t('app', 'Has The Patient Suffered from the same or similar symptoms before'),
于 2020-07-03T10:35:51.490 回答