web-dev-qa-db-fra.com

Comment changer le texte de l'étiquette de l'ActiveField?

J'ai créé un nouveau projet de base Yii2 et je souhaite creuser.

Il y a un champ Nom d'utilisateur sur la page de connexion: enter image description here

Je souhaite remplacer le libellé 'Nom d'utilisateur' par un libellé personnalisé, par exemple "Ma superbe étiquette". J'ai lu le manuel: http://www.yiiframework.com/doc-2.0/yii-widgets-activefield.html

Après avoir enquêté un peu, j'ai le résultat suivant: enter image description here

J'ai changé seulement le modèle et cela a changé la disposition:

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

Comment changer le texte de l'étiquette de manière correcte? Quelle est la meilleure pratique?

23
Vadim

D'accord, remplacez simplement attributeLabels dans LoginForm.php:

/**
 * Returns the attribute labels.
 *
 * See Model class for more details
 *  
 * @return array attribute labels (name => label).
 */
public function attributeLabels()
{
    return [
        'username' => 'Логин',
        'password' => 'Пароль',
    ];
}
18
Vadim
<?= $form->field($model, 'username')->textInput()->label('My superb label') ?>

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

41
Mihai P.

il y a une autre façon sympa.

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

Vous pouvez également ajouter une telle fonction au modèle:

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