2015-03-27 11 views
8

Das ist mein routes.php:Strecke in Laravel in Unterordner an die Steuerung 5

Route::get('/', 'Panel\[email protected]'); 

Diese meine Ordner ist:

namespace App\Http\Controllers; 

class PanelController extends Controller { 

/* some code here... */ 

} 

Dieses:

Http/ 
....Controllers/ 
................Panel/ 
....................../PanelController.php 

Das ist mein Controller ist was ich bekomme:

Class App\Http\Controllers\Panel\PanelController does not exist 

Ich versuchte, den „Komponisten-Dump-Autoload“ Befehl, aber immer noch nicht funktioniert ...

Antwort

18

Der Namensraum der Klasse hat die Verzeichnisstruktur anzupassen. In diesem Fall müssen Sie Ihre Klasse anpassen und Panel

namespace App\Http\Controllers\Panel; 
//        ^^^^^ 

use App\Http\Controllers\Controller; 

class PanelController extends Controller { 

/* some code here... */ 

} 
+0

Noch gleichen Fehler ... :( –

+0

Haben Sie laufen 'Komponist Dump-autoload' wieder – lukasgeiter

+0

sicher: /? Vielleicht etwas verändert in Laravel 5 –

5

Folgen drei einfache Schritte

  1. hängen Sie die Ordnernamen im Namespace

    namespace App\Http\Controllers\Panel; 
    
  2. hinzufügen „verwenden App \ hinzufügen Http \ Controller \ Controller; " an die Steuerung vor der Klassendefinition

    namespace App\Http\Controllers\Panel; 
    use App\Http\Controllers\Controller; 
    
  3. Fügen Sie den Ordnernamen angehängt, wenn der Controller in jeder Route

    Route::get('foo','Panel\[email protected]'); 
    

Es besteht keine Notwendigkeit

laufen "Komponist Dump-Autoload" Aufruf
+1

Nur kleine Korrektur, entfernen \ before Panel - 'Route :: get ('foo', 'Panel \ PanelController @ anyaction');' – user2432612

+0

Danke Benutzer2432612, Korrektur wurde angewendet. –

0

Sie können einen Controller mit einem Unterordner so einfach erstellen wie:

php artisan make:controller Panel\PanelController 

Es erstellt automatisch richtige Namespaces und Dateien mit Verzeichnis. Und es in Routen verweisen ebenso wie bereits erwähnt:

Route::get('/some','Panel\[email protected]'); 

Glückliches codding!