web-dev-qa-db-fra.com

Laravel 5 make: le contrôleur crée un contrôleur dans un dossier d'application au lieu d'un dossier

J'apprends à utiliser Laravel 5 et j'ai rencontré un problème de création de mes contrôleurs à la racine du dossier "app" au lieu du dossier "contrôleur". Je ne sais pas pourquoi cela se produit car j'ai été réinstallé et vérifié 10 fois.

Je suis dans Gitbash sur Windows 8.1 ..

Donc, je vais 

john@John ~/desktop/code/my-first-app
$ php artisan make:controller PagesController

et puis je reçois

Contrôleur créé avec succès

Seulement, il est créé dans la racine de app et rien dans le dossier Controllers. Qu'est-ce que je rate? Je vois aussi d’autres personnes ayant le même problème dans les commentaires de la vidéo sur laracasts .

6
user300979

Dans Laravel 5, il n'est pas nécessaire de spécifier le chemin. Par défaut, il va générer le contrôleur dans le répertoire.

Donc, le contrôleur peut être créé comme ceci:

php artisan make:controller controllerName

Toutefois, si vous souhaitez le créer dans un répertoire personnalisé, reportez-vous à la ligne ci-dessous:

php artisan make:controller pathName/controllerName
28
Vijay Sebastian

Après avoir essayé php artisan make: controller Directory\PageController, Laravel 5.1 créerait un contrôleur nommé DirectoryPageController dans mon répertoire app. La solution pour moi était d'échapper à la barre oblique inversée avec une autre barre oblique inversée afin que les éléments suivants fonctionnent pour moi:

fabrication artisanale php: Répertoire du contrôleur \\ PageController

Laravel a créé un contrôleur de page dans l'application/le répertoire. Je pensais que je partagerais avec tout le monde.

2
Matthew Way

Faites une mise à jour du compositeur, et tout reviendra à la normale.

0
JeffreyWay

Il semble qu'il y ait un bug dans la création de contrôleurs. 

Je l'ai vérifié il y a une minute à l'aide de Laravel 5 que j'ai installé environ une semaine ou deux et tout fonctionnait bien. Mais lorsque j’ai installé Laravel 5, les contrôleurs sont désormais créés dans le dossier app/ et non dans app/Http/Controllers

Mais il est également possible que les développeurs aient changé d'idée en ce qui concerne le stockage des contrôleurs (Laravel 5 est en cours de développement).

Pour le moment, personne ne le sait, vous pouvez également consulter discussion Laracast à propos de cette question.

Ce qui est aussi étrange, vous ne pouvez pas ajouter manuellement le chemin à cette commande.

Dans Laravel 4, vous pouvez faire:

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

mais dans Laravel5 pour controller:make vous avez moins d’options par rapport à Laravel 4, elles sont:

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.

vous ne pouvez donc pas définir ici le chemin personnalisé ou ne pas générer de méthodes, comme vous le pouvez dans Laravel 4. 

MODIFIER

Il semble que cela fonctionne à nouveau comme il se doit dans le plus récent Laravel 5 commit. Vous devez donc créer un nouveau projet Laravel 5 ou exécuter:

composer update

mettre à jour le projet.

Cependant, vous obtiendrez probablement des erreurs comme par exemple:

{"erreur": {"type": "Symfony\Composant\Debug\Exception\FatalErrorException", "message": "Classe 'Illuminate\Routing\FilterServiceProvider' introuvable", "fichier":

pour supprimer ces erreurs:

dans le fichier app/Providers/FilterServiceProvider.php change

use Illuminate\Routing\FilterServiceProvider as ServiceProvider;

dans:

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

et dans le fichier dans le fichier app/Providers/RouteServiceProvider.php change

use Illuminate\Routing\RouteServiceProvider as ServiceProvider;

dans:

use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
0
Marcin Nabiałek

fabrication artisanale php: controller -r controllerName

Essayez-le avec l'option -r, il créera un contrôleur avec plaque de chaudière (toutes les fonctions de base telles que: - public function index () {}, public function store (Request $ request) {}, et ainsi de suite ....... Pour une meilleure compréhension, vous pouvez également visiter: - https://laracasts.com/series/laravel-from-scratch-2017

0
Jitesh Lakhwani