2016-04-04 17 views
2

soyut olması gerekiyor ve benim uygulamayı açmak istediğinizde bu hatayı alırsınız:Çal Scala: Sınıf I Scala Play'de acemiyim

class ElevesController needs to be abstract, since method messagesApi in trait I18nSupport of type => play.api.i18n.MessagesApi is not defined 

EleveController.scala

package controllers 

import javax.inject.Inject 
import play.api.Logger 
import play.api.data.Form 
import play.api.data.Forms._ 
import play.api.i18n.{Messages, I18nSupport, MessagesApi} 
import play.api.mvc.{Action, Controller} 
import views.html 
import scala.concurrent.Future 
import models.Eleve 

class ElevesController @Inject() extends Controller with I18nSupport { 


    def viewEleves = Action {implicit request => 
    Ok(html.viewseleves(Eleve.findAll)) 
    } 
} 

ben nasıl düzeltileceğini bilmiyorum o

Düzenleme: "(val messagesApi: MessagesApi)" bu satırda: ben tamir , sadece eklemeniz gerekir

class ElevesController @Inject()(val messagesApi: MessagesApi) extends Controller with I18nSupport { 
+0

ha değiştirmek Katmalar! –

cevap

2

Çalışması gerekir. İhtiyacınız kadar `` derler val` ve her şey olmadan: Sadece nedense biz `@ Enjekte() (MessagesApi messagesApi) kullanılarak olmuştu vb eyleminizi

https://playframework.com/documentation/2.4.0-RC2/api/scala/index.html#play.api.i18n.I18nSupport

   package controllers 

       import javax.inject._ 
       import play.api._ 


       import javax.inject.Inject 
       import play.api.Logger 
       import play.api.data.Form 
       import play.api.data.Forms._ 
       import play.api.mvc._ 
       import views.html 
       import scala.concurrent.Future 
       import play.api.i18n._ 

        @Inject() 
       class ElevesController (val messagesApi: MessagesApi) extends Controller with I18nSupport { 

        val action = Action { implicit request => 
        Ok("Ok") // Uses the client???s preferred language 
         } 

        }