Dans le formulaire de connexion, je dois avoir glyphicon-remove
icône à la fin de chaque message de validation avec les noms de champs correspondants. J'ai donc utilisé le code ci-dessous dans le Login model
.
['email', 'required', 'message' => 'Email cannot be blank<span class="glyphicon glyphicon-remove"></span>'],
['password', 'required', 'message' => 'Password cannot be blank<span class="glyphicon glyphicon-remove"></span>']
Au lieu de ce code ci-dessus, existe-t-il un moyen possible d'utiliser quelque chose comme le code ci-dessous.
[['email', 'password'], 'required', 'message' => $attribute.' cannot be blank<span class="glyphicon glyphicon-remove"></span>']
L'idée du code ci-dessus est d'obtenir dynamiquement le nom de champ correspondant pour chaque champ.
Veuillez faire le nécessaire. Merci.
Mise à jour
Le code HTML
(<span class="glyphicon glyphicon-remove"></span>
) ici que j'ai utilisé est sortie correctement en utilisant encode=>'false'
. Mais ce dont j'ai besoin, c'est au lieu de définir séparément pour chaque domaine, il faut définir en commun pour tous les domaines.
Vous pouvez utiliser {attribute}
dans votre message pour référencer le nom de l'attribut.
public function rules()
{
return [
[
['email','password', 'password_verify', 'alias', 'fullname'],
'required',
'message' => '{attribute} is required'
],
[['email'], 'email'],
[['fullname'], 'string', 'max' => 50],
[['password', 'password_verify'], 'string', 'min' => 8, 'max' => 20],
[['password_verify'], 'compare', 'compareAttribute' => 'password'],
];
}
Vous pouvez également utiliser les autres options définies dans le validateur comme {min}
ou {requiredValue}
Ajoutez ceci dans votre formulaire:
_ form.php
<?php
$form = ActiveForm::begin([
'options' => ['enctype' => 'multipart/form-data'],
'fieldConfig' => ['errorOptions' => ['encode' => false, 'class' => 'help-block']]
]);
?>
errorOptions
l'encodage par défaut est vrai donc, votre code html est encodé en tant que message, donc il ne fonctionnera pas tant que vous n'aurez pas défini 'encode' => false
.