2012-10-15 8 views
7

Desidero personalizzare il messaggio di errore predefinito "Questo campo è obbligatorio" quando si utilizza il componente "nonEmptyText" nell'elmetto di forma Scala.Messaggi di errore specifici del campo in moduli Play Framework/Scala

Ecco un esempio che voglio personalizzare:

val form = Form(
    tuple("email" -> nonEmptyText, "password" -> nonEmptyText) 
     verifying ("Invalid email or password.", result => result match { 
     case (email, password) => { 
      User.authenticate(email, password).isDefined 
     } 
     })) 

modo ottimale nel mio conf/file di messaggi che ho potuto fornire un errore specifico campo:

error.email.required=Enter your login email address 
error.password.required=You must provide a password 

Ma nel caso peggiore sarebbe felice con un messaggio jolly utilizzando il nome del campo:

error.required=%s is required 
#would evaluate to "password is required", which I would then want to capitalize 

Ho visto questa espressione% s in alcuni documenti Play 1.x ma sembra non funzionare più.

Grazie in anticipo per il vostro aiuto!

risposta

8

tenta di eliminare l'utilizzo di un nonEmptyText e utilizzare un semplice text campo con una convalida personalizzato:

tuple(
    "email" -> text.verifying("Enter your login email address", {!_.isEmpty}), 
    "password" -> text.verifying("You must provide a password", {!_.isEmpty}) 
) 

È quindi possibile spostare un passo ulteriore e scambiare l'String all'interno della clausola di verifying per una chiamata al play.api.i18n.Messages oggetto:

tuple(
    "email" -> text.verifying(Messages("error.email.required"), {!_.isEmpty}), 
    "password" -> text.verifying(Messages("error.password.required"), {!_.isEmpty}) 
) 

noti che questo è codice non testato, ma dovrebbe indicare la direzione.

Good Luck

+0

Grazie @fynn io darò questo un colpo. – kgx

+0

Il tuo codice ha funzionato alla grande. Grazie ancora per avermi indicato nella giusta direzione! – kgx

+0

No, problema. Sono contento di poter aiutare ... – fynn

Problemi correlati