ホームページ >バックエンド開発 >PHPチュートリアル >ThinkPHP3.2 がコントローラーをロードできないのはなぜですか?

ThinkPHP3.2 がコントローラーをロードできないのはなぜですか?

PHPz
PHPzオリジナル
2016-06-13 12:07:356225ブラウズ

ThinkPHP3.2 がコントローラーをロードできない理由は次のとおりです。 1. コントローラーの定義時に名前空間が使用されています。 2. コントローラーの定義が正しくありません。たとえば、クラス名のスペルが間違っています。アクセスを禁止するように設定されているか、アクセス許可リストに設定されていません。

ThinkPHP3.2 がコントローラーをロードできないのはなぜですか?

ThinkPHP3.2 がコントローラーをロードできない主な理由と解決策

1. APP_USE_NAMESPACE (名前空間を使用するかどうか):

false に設定すると、コントローラーの定義時に名前空間が使用される場合、コントローラーは読み込まれません。この場合、パラメーターを true に設定するだけです。 。 ThinkPHP/Common/Conf/convention.php で設定できます。

2. ACTION_BIND_CLASS (メソッドとクラスをバインドするかどうか):

false に設定すると、コントローラー フォルダーの構造はコントローラー/ビュー名 Controller.class になります。 .php では、メソッドはクラス内に 1 つずつ記述されますが、true に設定すると、Controller フォルダーの構造は、Controller/ビュー名/method.class.php となり、1 つのクラスが 1 つのメソッドに対応します。

3. MODULE_ALLOW_LIST (モジュールへのアクセスを許可) および MODULE_DENY_LIST (モジュールへのアクセスを拒否):

モジュールがアクセスを禁止するように設定されている場合、またはモジュールが設定されていない場合許可されたアクセス リスト。このモジュールの下にあるすべてのページは正常にアクセスできません。

4. URL_MODEL (URL アクセスモード):

0 以外の場合、U メソッドを使用してモジュール配下の他のコントローラーのメソッドを呼び出す場合、モジュールを定義するには BIND_MODULE 定義を渡す必要があります。そうしないと、現在のモジュールを認識できません。

5. コントローラーの定義が間違っています:

名前空間はコントローラーの最初の非コメント行で定義する必要があり、名前空間のスペルに注意してください。コントローラーを定義するときのクラス名、および extends コントローラーが存在するかどうか、この小さな問題が原因でコントローラーにアクセスできないことがよくあります。

6. BIND_MODULE (バインディング モジュール):

モジュールがエントリ ファイルにバインドされている場合、そのモジュールをパスに含めることはできません。それ以外の場合は、コントローラーをバインドすることはできません。アクセスしました。

関連知識の詳細については、PHP 中国語 Web サイト をご覧ください。 !

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。