La colonne tutorielle suivante de thinkphp vous présentera la solution au problème que ThinkPHP6 indique que le contrôleur n'existe pas. J'espère que cela sera utile aux amis dans le besoin. !
ThinkPHP 6 indique que le contrôleur de contrôle n'existe pas
thinkphp 6 passe par défaut en mode application unique, lorsque plusieurs des applications sont nécessaires, vous devez installer l'extension du mode multi-applications think-multi-app
.
composer require topthink/think-multi-app
Supprimez ensuite le répertoire appcontroller fourni avec le framework et créez le répertoire d'application dont vous avez besoin
Par exemple : appindexcontrollerIndex.php
<?php namespace app\index\controller;use app\BaseController;class Index extends BaseController { public function index() { return 'hello index'; } }
Accédez à cette méthode. : http: //www.study_tp6.com/public/index.php/index/index/index
Invite de résultat : Le contrôleur n'existe pas appcontrollerindex
1. L'extension think-multi-app a été installée conformément à la documentation officielle et il a été indiqué que l'installation avait réussi.
2. L'espace de noms du contrôleur est également écrit correctement.
3. Le chemin d'accès est le même que le nom du répertoire, le contrôleur et le nom de la méthode, et l'adresse d'accès est correcte.
4. On dit sur Internet que dans le fichier de configuration config/app.php, changez 'auto_multi_app' => flase, en true,
Mais la version que j'utilise est ThinkPHP 6.0.4. Il n’existe aucun paramètre de ce type dans le fichier de configuration. J’ai essayé de l’ajouter mais cela n’a pas fonctionné.
5. Y a-t-il un problème avec le framework téléchargé ? J'ai retéléchargé le framework et réinstallé l'extension multi-application, mais cela ne fonctionnait toujours pas.
Solution :
Merci [ikgade] de l'avoir partagé dans les commentaires officiels. Je l'ai essayé et j'ai résolu ce piège.
Voici l'idée et le plan de l'auteur :
为什么提示 “控制器不存在:app\controller\Admin”? 因为安装多应用模式扩展执行的指令没有生效 php think service:discover 自动注册扩展包的系统服务。 为什么自动注册拓展包服务失败,详见代码: vendor/topthink/framework/src/think/console/command/ServiceDiscover.php 第34行代码$package['extra']['think']['services']为空,导致生成自动注册服务文件 services.php 中没有注册的代码。 天坑! 怎么解决呢? 首先找到你加入的拓展,在这里: vendor/composer/installed.json 然后把所有的$package['extra']['think']['services']复制粘贴到services中,或者修改以下文件的代码: vendor/topthink/framework/src/think/console/command/ServiceDiscover.php
Copiez la valeur des services dans supplier/composer/installed.json dans le tableau des fournisseurs/services.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!