モジュールは部分ビューにのみ使用し、直接ルーティングされることはありません。代わりに、内部にメインコントローラーと内部application/controllers
にビューがapplication/views/
あり、Modules::run($moduleName, $params);
これによりモジュールが呼び出され、到達すると正常にレンダリングされます。
問題は、私のルートがapplication/controller/
メソッドを呼び出していないことです。私のルーティングが完全に機能しなくなり、私のroute['default_controller']
作品で定義されたホームページだけが機能しなくなったことを意味します。私のメイン テンプレート ファイルapplication/views
は Modules::run($moduleName, $params) を正常に呼び出すため、モジュールと HMVC が独立して正常に動作していることを確認できます。
最近、CodeIgniter 2 から 3 にアップグレードし、モジュール拡張機能 - WireDesignz の HMVCパッケージもアップグレードしました。ディレクトリ構造と関連ファイルについては、画像を参照してください。
@ /application/config/routes.php:
$route['default_controller'] = "dashboardcontroller/index";
$route['playlist(|.+?)'] = "dashboardcontroller/custommethod";
@ /application/controllers/Dashboardcontroller.php (注記die()
):
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class dashboardcontroller extends MX_Controller {
private $data = array("pagi"=>array(), "me"=>array(), 'errors'=>null);
function __construct() {
parent::__construct();
}
function index() {
die("THIS IS THE ONLY THING EVER HIT");
}
function custommethod($moduleName, $params) {
die("THIS IS NEVER HIT");
}
}
Dashboardcontroller.php を変更して CI_Controller を拡張すると、CI クラスを再宣言する MX/Base.php から始まる一連のエラーが発生します。
URI をアプリケーション/コントローラーにルーティングし、引き続き Module::run($moduleName, $params) を使用するにはどうすればよいですか?