2012-10-15 14 views
7

Chcę dostosować domyślny komunikat o błędzie "To pole jest wymagane", gdy używa się znacznika "nonEmptyText" w pomocniku formularza Scala.Komunikaty błędów specyficzne dla pola w formularzach Play Framework/Scala

Oto przykład, że chcę, aby dostosować:

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

optymalnie w moim conf/messages mogę zapewnić błąd pola specyficzne:

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

Ale w najgorszym wypadku ja byłby zadowolony z wiadomości wieloznacznego używając nazwa pola:

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

widziałem tego wyrażenia% s niektóre dokumenty dotyczące gry w wersji 1.x, ale nie wydaje się już działać.

Z góry dziękujemy za pomoc!

Odpowiedz

8

Spróbuj spadek zużycia o nonEmptyText i użyć prostego text pola z walidacji niestandardowe:

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

możesz przejść krok dalej i wymienić String wewnątrz klauzuli verifying na wezwanie do play.api.i18n.Messages obiektu:

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

Zauważ, że ten kod jest niesprawdzone, ale powinna wskazać kierunek.

Powodzenia

+0

Dzięki @fynn dam ten strzał. – kgx

+0

Twój kod działał świetnie. Jeszcze raz dziękuję za wskazanie mnie we właściwym kierunku! – kgx

+0

Nie, problem. Cieszę się że mogłem pomóc... – fynn

Powiązane problemy