Heim >PHP-Framework >Denken Sie an PHP >Lösen Sie das Problem, dass ThinkPHP6 meldet, dass der Controller nicht vorhanden ist
Die folgende Tutorial-Kolumne von thinkphp stellt Ihnen die Lösung für das Problem vor, dass ThinkPHP6 anzeigt, dass der Controller nicht existiert. Ich hoffe, dass es Freunden in Not hilfreich sein wird!
ThinkPHP 6 meldet, dass der Steuerungscontroller nicht vorhanden ist.
ThinkPHP 6 verwendet standardmäßig den Einzelanwendungsmodus. Wenn mehrere Anwendungen benötigt werden, müssen Erweiterungen für den Mehrfachanwendungsmodus installiert werden. think-multi-app
composer require topthink/think-multi-appDann löschen Sie das Appcontroller-Verzeichnis, das mit dem Framework geliefert wird, und erstellen Sie das benötigte Anwendungsverzeichnis.
<?php namespace app\index\controller;use app\BaseController;class Index extends BaseController { public function index() { return 'hello index'; } }Besuchen Sie diese Methode: http://www.study_tp6.com/public/index .php/ index/index/index
Der Controller existiert nicht. appcontrollerindex
Lösung:
Vielen Dank an [ikgade], der die offiziellen Kommentare geteilt, es ausprobiert und diese Falle gelöst hat. Dies ist die Idee und der Plan des Autors:为什么提示 “控制器不存在: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.phpKopieren Sie den Servicewert in Vendor/Composer/Installed.json in das Array von Vendor/Services.
Das obige ist der detaillierte Inhalt vonLösen Sie das Problem, dass ThinkPHP6 meldet, dass der Controller nicht vorhanden ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!