2015-09-09 9 views
7

Nel modulo di accesso, è necessario disporre dell'icona glyphicon-remove alla fine di ogni messaggio di convalida con i nomi dei campi corrispondenti. Così ho usato sotto il codice nel Login model.Yii2, messaggio di convalida personalizzato con nomi di attributo

['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>'] 

Invece di questo codice precedente, Esiste un modo possibile di utilizzare qualcosa come il codice riportato di seguito.

[['email', 'password'], 'required', 'message' => $attribute.' cannot be blank<span class="glyphicon glyphicon-remove"></span>'] 

L'idea del codice precedente è di ottenere il nome del campo corrispondente dinamicamente per ogni campo.

Si prega di fare il necessario. Grazie.

Aggiornamento

Il codice HTML (<span class="glyphicon glyphicon-remove"></span>) qui ho usato viene emesso correttamente utilizzando encode=>'false'. Ma quello di cui ho bisogno è invece di definire separatamente per ogni campo, necessario definire comunemente per tutti i campi.

risposta

16

È possibile utilizzare {attribute} nel proprio messaggio per fare riferimento al nome dell'attributo.

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'], 
    ]; 
} 

È inoltre possibile utilizzare le altre opzioni impostate nel validatore, come {min} o {} requiredValue

+0

Grazie. Esattamente quello di cui ho bisogno. Grazie ancora per la tua risposta. Felice codifica :) –

1

Aggiungere questo nel vostro modulo:

_form.php

<?php 
    $form = ActiveForm::begin([ 
      'options' => ['enctype' => 'multipart/form-data'], 
      'fieldConfig' => ['errorOptions' => ['encode' => false, 'class' => 'help-block']] 
    ]); 
?> 

errorOptions di default la codifica è vero in modo, il codice HTML è codificato come messaggio, in modo che non funzionerà finché non si imposta 'encode' => false.

+0

Grazie per l'interesse, ma ho bisogno di qualcosa di diverso. Potresti controllare la mia domanda aggiornata. Grazie. –

Problemi correlati