2017-07-30 41 views
0

我跟所有的答案中的各個環節提供關於這一主題:播放2.5:找不到參數消息隱含值:play.api.i18n.Messages

Play 2.4: Form: could not find implicit value for parameter messages: play.api.i18n.Messages

could not find implicit value for parameter messages: play.api.i18n.Messages

然而,我沒能獲得過此錯誤:

app/views/user.scala.html:4: could not find implicit value for parameter messages: play.api.i18n.Messages 

[error] @helper.inputText(userForm("name")) 
[error]     ^
[error] app/views/user.scala.html:5: could not find implicit value for parameter messages: play.api.i18n.Messages 
[error] @helper.inputText(userForm("age")) 

我下面從這裏的例子:https://www.playframework.com/documentation/2.5.x/ScalaForms

+0

請告訴我們作爲[文件]中所示的'user.scala.html'和控制器 –

+0

的內容(HTTPS://www.playframework .com/documentation/2.5.x/ScalaI18N)「你應該添加一個Messages隱式參數給你的模板,像這樣:'@()(implicit messages:Messages)'」 – cchantep

+0

發佈內容如下。 – NKM

回答

0

user.scala.html:

@(userForm: Form[UserData]) (implicit messages: Messages) 

@helper.form(action = routes.UserController.userPost()) { 
    @helper.inputText(userForm("name")) 
    @helper.inputText(userForm("age")) 
} 

UserController.scala:

package controllers 

import play.api.mvc._ 
import play.api.Play.current 

import play.api.data._ 
import play.api.data.Forms._ 
import javax.inject.Inject 
import play.api.i18n.I18nSupport 
import play.api.i18n.MessagesApi 
import play.api.i18n.Messages.Implicits._ 

import views._ 

case class UserData(name: String, age: Int) 

class UserController @Inject()(val messagesApi: MessagesApi) extends Controller with I18nSupport { 
    val userForm = Form(
    mapping(
     "name" -> text, 
     "age" -> number 
    )(UserData.apply)(UserData.unapply) 
    ) 

    def index = Action {implicit request => 
    Ok(views.html.user(userForm)) 
    } 
    def userPost = Action {implicit request => 
     userForm.bindFromRequest.fold(
     formWithErrors => { 
      // binding failure, you retrieve the form containing errors: 
      BadRequest(views.html.user(formWithErrors)) 
     }, 
     userData => { 
     /* binding success, you get the actual value. */ 
     val name = userData.name 
     val age = userData.age 
     Ok(<message>Success !!</message>) 
     } 
    ) 
    } 
} 
0

一切看起來不錯,但也許之間的空間:

@(userForm: Form[UserData]) (implicit messages: Messages)

嘗試:

@(userForm: Form[UserData])(implicit messages: Messages)

,因爲它應該是一個組合參數

+0

哦,我的天啊!這工作。非常感謝。 但它是如此令人費解的是空間,可能會導致問題沒有給予任何提示。此Play限制沒有文檔。 – NKM

+0

哪裏可以找到這種類型的語法相關的限制在Play框架?我相信這是對Play而不是Scala的限制。 – NKM

相關問題