2016-09-14 3 views
0

So in meinem Projekt habe ich eine Klasse, die in app Ordner (nicht innerhalb app/http/controllers) platziert ist und hat Middleware nur App.Laravel Route :: direkt aus App-Ordner

Wenn ich versuche, seine Methode von routes.php ist es nicht gefunden, weil es nicht in Controller-Ordner und Middleware ist.

Was soll ich anstelle von Route::get('/get', '[email protected]'); schreiben, damit alles funktioniert?

+0

Warum hat es außerhalb Controller Ordner? – geckob

+0

weil ich nicht weiß, wo ich die Klasse platzieren soll, wenn ich versuche, meine eigene API zu erstellen – Coffee

+0

Mache stattdessen einen neuen Controller. Das ist besser – geckob

Antwort

2

Zunächst einmal für Ihre API Sie so etwas wie Lumen verwenden soll, oder, wenn Sie es in Ihrem Hauptprojekt möchten, stellen innerhalb verschachtelten Ordner Ihr Controllers Ordner, und greifen Sie auf Routen wie Api\[email protected].

Wenn Sie wirklich wollen, dass es außerhalb Controller Ordner (absolut keinen Grund dafür, IMHO), müssen Sie RouteServiceProvider Namespace-Einstellung ändern, leere Zeichenkette zu sein:

class RouteServiceProvider extends ServiceProvider 
{ 
    /** 
    * This namespace is applied to your controller routes. 
    * 
    * In addition, it is set as the URL generator's root namespace. 
    * 
    * @var string 
    */ 
    protected $namespace = ''; 

    // ... 
} 

Dann geben vollständigen Namespace für Ihren Controller und greifen Sie von überall darauf zu.

0

Sie können die Controller in Unterordnern organisieren, wenn Sie sie korrekt benennen. Ich kann mir keinen vernünftigen Grund vorstellen, keine Anwendungscontroller in die Anwendung seines Controller-Verzeichnisses zu setzen.

See: