Je suis nouveau à Laravel. Pour essayer de garder mon application organisée, j'aimerais placer mes contrôleurs dans des sous-dossiers du dossier contrôleur.
controllers\
---- folder1
---- folder2
J'ai essayé de diriger vers un contrôleur, mais laravel ne le trouve pas.
Route::get('/product/dashboard', 'folder1.MakeDashboardController@showDashboard');
Qu'est-ce que je fais mal?
php artisan make:controller test\TestController
crée testTestController.php alors quephp artisan make:controller 'test\TestController'
fonctionne. (Notez les citations) - Laravel 5.4php artisan make:controller test/TestController
Ajoutez vos contrôleurs dans vos dossiers:
Créez votre itinéraire sans spécifier le dossier:
Courir
Et essayez à nouveau
la source
artisan dump-autoload
aussi ou est-cecomposer dump-autoload
suffisant?ClassLoader::addDirectories
vous n'avez pas sur le compositeur, vous aurez également besoin d'un artisan.composer dump-autoload
travaille pour moi aussi. Si vous utilisez le système d'exploitation Windows, vous pouvez utiliser un fichier .bat à lacomposer dump-autoload
place pour taper CMD à chaque fois. Voici ce que j'utilise:PUSHD "E:\path\to\non-public" newline START /B "Window 1" composer dump-autoload newline pause
Pour ceux qui utilisent Laravel 5, vous devez définir l'espace de noms du contrôleur dans le sous-répertoire (Laravel 5 est toujours en développement et des changements se produisent quotidiennement)
Pour obtenir une structure de dossiers comme:
namespace Admin \ PostsController.php comme suit:
Ensuite, votre itinéraire pour cela est:
Et enfin, ne faites pas de dépôt de compositeur ou d'artisan
ou
la source
App\Http\Controllers\Auth\Controller
introuvable, pourquoi y ajoute-t-il le motController
et perd-il le nom réel du contrôleur? Je pense que c'est la barre oblique qui fait ça.-o
n'a pas aidé.Pour ** Laravel 5 ou Laravel 5.1 LTS les deux **, si vous avez plusieurs contrôleurs dans le dossier Admin,
Route::group
cela vous sera vraiment utile. Par exemple:Mise à jour : fonctionne avec Laravel 5.4
Ma structure de dossier:
PostAPIController:
Dans My Route.php, j'ai défini le
namespace
groupe surApi\V1
et dans l'ensemble, il ressemble à:Pour les détails de déplacement pour créer un sous-dossier, visitez ce lien .
la source
1. créez votre sous-dossier comme suit:
2. configurez votre code dans app / routes.php
3. écrivez qc dans app / controllers / admin / IndexController.php, par exemple:
4. accéder à votre site, par exemple : localhost / admin / test vous verrez "admin.home" sur la page
ps: Veuillez ignorer mon mauvais anglais
la source
Je viens de trouver un moyen de le faire:
Ajoutez simplement les chemins au fichier /app/start/global.php
la source
Ici, l'administrateur est le sous-répertoire sous app / Http / Controllers et CategoryController est le contrôleur que vous souhaitez créer dans le répertoire
la source
Dans Laravel 5.6, en supposant que le nom de votre sous-dossier 'est
Api
:Dans votre contrôleur, vous avez besoin de ces deux lignes:
Et dans votre fichier d'itinéraire
api.php
, vous avez besoin de:la source
J'utilise Laravel 4.2. Voici comment je fais:
J'ai une structure de répertoires comme celle-ci:
app
--controllers
---- admin
------ AdminController.php
Après avoir créé le contrôleur, j'ai mis dans le composer.json le chemin vers le nouveau répertoire d'administration:
Ensuite, j'ai couru
puis
Ensuite, dans le routes.php, j'ai le contrôleur inclus comme ceci:
Et tout fonctionne bien.
la source
1) Voici comment organiser votre application:
Chaque fichier de route (
web.php
,api.php
...) est déclaré dans unemap()
méthode, dans un fichierLorsque vous mappez un fichier d'itinéraire, vous pouvez en définir un
->namespace($this->namespace)
, vous le verrez parmi des exemples.Cela signifie que vous pouvez créer plus de fichiers pour rendre votre projet plus structuré!
Et définissez des espaces de noms différents pour chacun d'eux.
Mais je préfère définir
empty string
pour l'espace de noms""
2) Vous pouvez configurer vos contrôleurs pour qu'ils routent de manière native php, voir l'exemple:
Vous pouvez maintenant double-cliquer sur les noms de vos contrôleurs dans votre IDE pour y accéder rapidement et facilement.
la source
Si vous utilisez Laravel 5.3 ou supérieur, il n'est pas nécessaire d'entrer dans une telle complexité comme l'ont dit d'autres réponses. Utilisez simplement la commande artisan par défaut pour générer un nouveau contrôleur. Par exemple, si je veux créer un
User
contrôleur dans unUser
dossier. Je taperaisDans les itinéraires,
faire juste cela serait bien et maintenant, sur localhost / dashboard, c'est là que réside la page.
J'espère que cela t'aides.
la source
Je pense que pour garder les contrôleurs pour Admin et Front dans des dossiers séparés, l'espace de noms fonctionnera bien.
Veuillez regarder la structure de répertoires Laravel ci-dessous, cela fonctionne très bien pour moi.
Les routes dans le fichier "routes / web.php" seraient comme ci-dessous
Et pour la section Admin, cela ressemblera à
J'espère que cela t'aides!!
la source
J'ai eu ce problème récemment avec laravel 5.8 mais je sous-estime que je devrais définir le contrôleur de la bonne manière comme ceci ci-dessous:
Pas comme ça:
Ensuite, vous pouvez accéder au contrôleur dans routes / web.php comme ceci:
la source