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 .
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
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.
Faites une mise à jour du compositeur, et tout reviendra à la normale.
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;
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