2014-09-30 23 views
5

Ich lerne, wie Laravel 5 zu verwenden, und ich habe ein Problem, wo meine Controller im Stamm des Ordners "app" erstellt werden des Ordners "controller". Ich habe keine Ahnung, warum das passiert, da ich 10 Mal installiert und überprüft habe.Laravel 5 make: Controller erstellt Controller im App-Ordner anstelle des Controller-Ordners

ich in gitbash bin auf Windows 8.1 ..

Also gehe ich

[email protected] ~/desktop/code/my-first-app 
$ php artisan make:controller PagesController 

und dann bekomme ich

-Controller erstellt erfolgreich

Nur wird es sein in der Wurzel von app erstellt und nichts in den Controllern Mappe. Was vermisse ich? Ich sehe auch andere, die dasselbe Problem in den Kommentaren unter Video auf laracasts haben.

+0

Ich habe meine Antwort bearbeitet. Bitte schau es dir an –

Antwort

22

In Laravel 5 ist es nicht erforderlich, den Pfad anzugeben. Standardmäßig wird der Controller im Verzeichnis generiert.

So kann die Steuerung wie folgt erstellt werden:

php artisan make:controller controllerName 

jedoch, wenn Sie es in einem benutzerdefinierten Verzeichnis dann auf die Linie beziehen erstellen möchten unter:

php artisan make:controller pathName/controllerName 
+1

Ich habe gerade den Vorschlag von Vijay ausprobiert und pathNamecontrollerName erstellt. Allerdings hatte ich Erfolg mit php artisan make: controller pathName \\ controllerName. –

+1

Sie können auch den Schrägstrich umkehren, so wäre es 'php Handwerker machen: Controller Pfadname/controllername' – SnapShot

+0

ja downvote, weil der 'benutzerdefinierte Verzeichnis' Rat eindeutig falsch ist - und seit über 2 Jahren falsch ist. Um einen Controller in einem benutzerdefinierten Verzeichnis zu erstellen, benötigen Sie 'php artisan make: controller DirectoryName/ControllerName' – goredwards

0

Es scheint, dass beim Erstellen von Controllern ein Fehler auftritt.

Ich habe es vor einer Minute mit Laravel 5 überprüft Ich habe etwa ein oder zwei Wochen installiert und es hat gut funktioniert. Aber wenn ich frische Laravel 5 installiert habe, werden jetzt Controller in app/ Ordner erstellt und nicht in app/Http/Controllers.

Aber es ist auch möglich, dass Entwickler ihre Meinung geändert haben, wo Controller gespeichert werden (Laravel 5 ist noch in der Entwicklung).

Im Moment weiß niemand, dass Sie auch Laracast discussion über dieses Problem betrachten können.

Was ist auch seltsam, Sie können nicht manuell Pfad zu diesem Befehl hinzufügen.

In Laravel 4 Sie tun können:

php artisan controller:make --path="app/Controllers" PagesController 

aber in Laravel5 für controller:make haben Sie weniger Optionen Laravel Vergleich 4, sie sind:

Options: 
--plain    Generate an empty controller class. 
--help (-h)   Display this help message. 
--quiet (-q)   Do not output any message. 
--verbose (-v|vv|vvv) Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug 
--version (-V)  Display this application version. 
--ansi    Force ANSI output. 
--no-ansi    Disable ANSI output. 
--no-interaction (-n) Do not ask any interactive question. 
--env     The environment the command should run under. 

so können Sie sich hier nicht benutzerdefinierten Pfad setzen oder nicht einige Methoden erzeugen, wie Sie in Laravel 4.

EDIT

Es scheint, es funktioniert wieder wie es sollte in der neuesten Laravel 5 Commit. Daher sollten Sie entweder ein neues Laravel 5-Projekt erstellen oder Folgendes ausführen:

, um das Projekt zu aktualisieren.

aber Sie werden wahrscheinlich einige Fehler, wie zum Beispiel erhalten:

{ "Fehler": { "type": "Symfony \ Component \ Debug \ Exception \ FatalErrorException", "message": "Klasse 'Illuminate \ Routing \ FilterServiceProvider' nicht gefunden“, "file":

, um diese Fehler zu entfernen:

in Datei app/Providers/FilterServiceProvider.php Änderung

use Illuminate\Routing\FilterServiceProvider as ServiceProvider; 

in:

use Illuminate\Foundation\Support\Providers\FilterServiceProvider as ServiceProvider; 

und in der Datei in app/Providers/RouteServiceProvider.php Datei ändern

use Illuminate\Routing\RouteServiceProvider as ServiceProvider; 

in:

use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; 
0

einen Komponisten Update tun, und es wird wieder normal sein .

+0

Ich erhalte jetzt einen Fehler in der FilterServiceProvider.php in Zeile 5, wenn ich versuche, einen Controller zu erstellen oder php artisan im Allgemeinen auszuführen. – user300979

2

Nach dem Versuch, php artisan make: Controller Verzeichnis \ PageController, Laravel 5.1 würde einen Controller namens DirectoryPageController in meinem App-Verzeichnis erstellen. Die Lösung war für mich die Backslash mit einem anderen Backslash zu entkommen, so dass das für mich gearbeitet folgenden:

php Handwerker machen: Controller Verzeichnis \\ Pagecontroller

Laravel erstellt eine Pagecontroller im app/Directory. Ich dachte nur, ich würde es mit allen teilen.