1

モジュールは部分ビューにのみ使用し、直接ルーティングされることはありません。代わりに、内部にメインコントローラーと内部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) を使用するにはどうすればよいですか?

4

0 に答える 0