2014-02-06 4 views
1

Я получаю play.api.data.Form [String] требуется: Option [models.User] при попытке отображения ошибка в просмотре html.scala: Получение play.api.data.Form [String] требуется: Option [models.User]

Ниже приведен код, который я пытаюсь использовать, пожалуйста, не стесняйтесь использовать все, если это необходимо. Благодаря

Контроллер:

val forgotPasswordForm = Form(
    single(
     "email" -> text 
    ) verifying ("Invalid email or password", result => result match { 
     case (e) => User.findOneByEmail(e).isDefined 
    }) 
) 

    def forgotPassword() = withOptionUser { user => implicit request => 
    Ok(views.html.anon.forgotPassword(user)) 
    } 

    def forgotPasswordSubmit = withOptionUser { user: User => implicit request => 
    forgotPasswordForm.bindFromRequest().fold(
     formWithErrors => { 
     // do something with the bad form, like reshow the view 
     BadRequest(views.html.anon.forgotPassword(formWithErrors)) 
     }, 
     submission => { 
     // do something with the submitted form 
     Ok("got " + forgotPasswordForm.value) 
     } 
    ) 
    } 

Html:

@( user: Option[User] 
) 

@stylesheet = { 
    <link rel="stylesheet" media="screen" href='@routes.Assets.at("styles/public/anon.min.css")'> 
} 

@main("Forgot Password",user: Option[User],"forgotPassword",stylesheet){ 

<section class="login"> 
    <div class="loginBox contentBox"> 
     <h1>Forgot Password?</h1> 

     @if(forgotPasswordForm.hasGlobalErrors) { 
      <ul> 
      @forgotPasswordForm.globalErrors.foreach { error => 
       <li>error.message</li> 
      } 
      </ul> 
     } 

     <p>Enter your email address:</p> 
     <form action="/forgotpassword" method="POST"> 
      <input type="email" name="email" placeholder="E-mail Address" id="email" data-xpl="loginEmail"/> 

      <div class="greenButton"> 
       <input type="submit" id="loginbutton" value="submit" data-xpl="loginSubmit"/> 
      </div> 
     </form> 
    </div> 
</section> 

} 
+0

Спасибо @biesior я не заметил неправильный тег «воспроизведение» – Monnster

+0

хотя мы предполагаем, что Играем 2+ с Scala , вы можете добавить информацию о конкретной версии в теги/вопрос. – biesior

+0

спасибо biesior .. будет делать это – Monnster

ответ

1

formWithErrors является Form[String], и ваш шаблон ожидает Option[User]. Я не совсем понимаю, почему вы передаете Option[User] в форму для забытого пароля, но этот шаблон должен содержать forgotPasswordForm: Form[String] в списке параметров.

Затем вы можете сделать шаблон, как это:

Ok(views.html.anon.forgotPassword(user, forgotPasswordForm)) 

или

BadRequest(views.html.anon.forgotPassword(user, formWithErrors)) 
Смежные вопросы