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

藏色散人
リリース: 2021-01-07 09:10:45
転載
10038 人が閲覧しました

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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート