ホームページ  >  記事  >  PHPフレームワーク  >  ThinkPHP6 でコントローラーが存在しないというメッセージが表示される問題を解決する

ThinkPHP6 でコントローラーが存在しないというメッセージが表示される問題を解決する

藏色散人
藏色散人転載
2021-01-06 16:21:3210036ブラウズ

thinkphp の次のチュートリアル コラムでは、ThinkPHP6 でコントローラーが存在しないというメッセージが表示される問題の解決策を紹介します。 !

ThinkPHP6 でコントローラーが存在しないというメッセージが表示される問題を解決する

ThinkPHP 6 は、コントロール コントローラーが存在しないことを示すプロンプトを表示します。


thinkPHP 6 は、複数のアプリケーションが存在する場合、デフォルトでシングル アプリケーション モードになります。アプリケーションが必要な場合は、マルチアプリケーション モード拡張機能

think-multi-app をインストールする必要があります。

composer require topthink/think-multi-app
次に、フレームワークに付属の app\controller ディレクトリを削除し、必要なアプリケーション ディレクトリを作成します。


例: \app\index\controller\Index.php

<?php
namespace app\index\controller;use app\BaseController;class Index extends BaseController
{    public function index()
    {        return 'hello index';
    }
}
このメソッドにアクセスします: http://www.study_tp6.com/public/index.php/index/index/index


結果プロンプト:

コントローラーは存在します app\controller \index


理由を見つけます:

1. think-multi-app 拡張機能は公式ドキュメントに従ってインストールされており、次のメッセージが表示されます。インストールは成功しました。

2. コントローラーの名前空間が正しく記述されていません。

3. アクセスパスはディレクトリ名、コントローラ、メソッド名と同じであり、アクセスアドレスは正しいです。

4. インターネット上では、設定ファイル config/app.php で 'auto_multi_app' => flase を true に変更すると言われていますが、私が使用しているバージョンは ThinkPHP です。 6.0. 4. 設定ファイルにそのようなパラメータがないので追加してみましたが、うまくいきませんでした。

5. ダウンロードしたフレームワークに問題がありますか?フレームワークを再ダウンロードし、マルチアプリケーション拡張機能を再インストールしましたが、それでも動作しませんでした。

解決策:

公式コメントを共有してくれた [ikgade] に感謝します。試してみて、この落とし穴を解決しました。

これは作成者のアイデアと計画です:

为什么提示 “控制器不存在: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
vendor/composer/installed.json のサービスの値を、vendor/services の配列にコピーします。

以上がThinkPHP6 でコントローラーが存在しないというメッセージが表示される問題を解決するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。