2012-10-15 10 views
7

Scalaフォームヘルパーで "nonEmptyText"コンストレインを使用するときに、デフォルトのエラーメッセージ "このフィールドは必須です"をカスタマイズします。ここでPlay Framework/Scalaフォームのフィールド固有のエラーメッセージ

は、私がカスタマイズしたいの例です:私のconf/messagesに最適

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

は、私は、フィールド固有のエラーを提供することができますファイル:

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

しかし、最悪の場合Iでフィールド名を使用したワイルドカードメッセージが表示されます:

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

いくつかのPlay 1.xのドキュメントが、もう動作しないようです。

ありがとうございました!

答えて

8

nonEmptyTextの使用をドロップすると、カスタム検証を簡単なtextフィールドを使用してみてください:

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

あなたはその後、さらなるステップを移動しての呼び出しのためにverifying句内Stringを交換することができますplay.api.i18n.Messagesオブジェクト:これはテストされていないコードであるが、それは方向を指摘すべきであること

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

注意。私はこのショットを与える@fynn

幸運は

+0

感謝。 – kgx

+0

コードがうまく機能しました。私は正しい方向に向いてくれてありがとう! – kgx

+0

いいえ、問題です。私が助けることができてうれしい – fynn

関連する問題