2015-11-18 15 views
6

Ich folge ein Tutorial des Play-Framework, aber ich in ein Problem aufgetreten ist, schreibe ich haben dieses Objekt:Typ „“ ist kein Mitglied von Paket-Controller spielen Rahmen

package controllers 

import play.api.mvc._ 

object Tickets extends Controller { 
    def ticketsAvailable = Action { request => 
    val availableTickets = 1000 
    Ok(availableTickets.toString) 
    } 
} 

und dann die Routen hinzufügen :

GET  /tickets/available/   controllers.Tickets.ticketsAvailable 

aber wenn ich erhalte ich diesen Fehler kompilieren:

Typ Tickets kein Mitglied von Paket-Controller ist, kann mir jemand helfen, mit einem Beispiel dafür, wie ich dieses Problem zu beheben?

Dank

Antwort

13

ändern object einen class, dh.

class Tickets extends Controller { 

Und natürlich Tickets.scala sollte unter app/controllers verpackt werden.

+0

Hallo Nio. Ihre Antwort hat ein paar Monate, aber es löst auch mein Problem. Kannst du mir erklären, warum das Ändern von Objekt zu Klasse dieses spezielle Problem löst? – ohe

+1

ohe, seit Version 2.4 Play (standardmäßig) nutzt die Verwendung von Dependency Injection (Google Guice) standardmäßig in seinem Angebot, globalen Status aus dem Framework zu entfernen. [Lesen Sie dies in der Dokumentation] (https://www.playframework.com/documentation/2.4.x/Migration24#Dependency-Injection) - es erklärt die Dinge ein wenig klarer. – Nio

+0

Danke für den Link, sehr klar! – ohe

0

Ich habe meinen Code von Objekt ApplictionController erweitert Controller {} zu Class ApplicationController erweitert Controller {} und es hat funktioniert.

Verwandte Themen