Laravel 4 Verschachtelte Controller und Routing
Ist es möglich, den Anruf zu einer Kontrolle, die verschachtelt in einen sub-Ordner in Laravel 4?
Meine Controller sind wie folgt
- Controllers
- admin
* AdminController.php
* HomeController.php
* BaseController.php
* ArticleController.php
Unten ist der code von meinem AdminController Klasse:
<?php
class LoginController extends BaseController {
public function showLogin()
{
return View::make('partials.admin.login');
}
}
In meinem Routes.php Datei bin ich wie folgt:
Route::get('/admin', 'admin.LoginController@showLogin');
Aber ich bin immer eine Klasse nicht gefunden Fehler. Ist es etwas, was ich bin fehlt ich kann nicht scheinen, um herauszufinden, wie dieses problem zu lösen, aus dem Laravel 4 Dokumentation.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Solange Sie nicht ändern Sie den namespace der Steuerung Sie sollten in der Lage sein, um es von der globalen Namensraum, auch wenn es in einem Unterordner.
Also einfach ändern:
zu:
Das mit dem Namen auch übereinstimmen muss der name der Klasse so ändern, 'AdminController.php' zu 'LoginController.php' oder ändern Sie den Namen der Klasse von 'LoginController' zu 'AdminController'.
Und stellen Sie sicher, Sie tun
composer dump-autoload
set
jede Fassade, das Modell und die Klasse BaseController in die DateiMüssen Sie nur hinzufügen
namespace
in IhremAdminController.php
- Datei und ändern Sie den Namen der Klasse ausLoginController
zuAdminController
AdminController.php
dann:und ändern Sie Ihre
routes.php
zu :Erlebte ich ein problem, wenn ich meine gespeicherten admin-controller in einem Unterverzeichnis des Controller-Verzeichnis app/controllers/admin
Musste ich dieses Verzeichnis hinzufügen, um die Liste der autoload classmaps in meine composer.json-Datei
Dann laufen composer dump-autoload
Hinzufügen eines trailing slash "app/controllers" in
composer.json
für mich gearbeitet:Führen
composer dump-autoload
werden kann, ist es zu spät, aber eine der Möglichkeiten ist die Verwendung von namespaces.
hier ist mein Beispiel:
Routen.php :
und auf der Oberseite von Ihrem backend-Controller hinzufügen, fügen Sie diese Zeilen :
ist und auch fügen Sie diese Zeilen zu Ihrer Komponisten.json in der classmap-Richtlinie :