3

構造は次のようになります。

modules
    admin
        controllers/
            admin.php
        models/
            admin_model.php
        views/
            admin/
                index.php
    categories/
        controllers/
            admin.php
            categories.php
        models/
            categories_model.php
        views/
            admin/
                index.php
                menu.php
            frontpage.php
    posts/
        controllers/
            admin.php
            posts.php
        models/
            posts_model.php
        views/
            admin/
                index.php
                menu.php
            frontpage.php    

管理コントローラは次のようになります。

class Admin extends Backend_Controller {

    function __construct()
    {
         parent::__construct();
         $this->load->model('categories_model');
    }

    public function index()
    {
             // index stuff
    }

    public function _menu()
    {
         $this->load->view('categories/admin/menu');
    }

}

そして、次のように別のモジュール ビューから呼び出している場合:

<?php echo Modules::run('categories/admin/_menu'); ?>

それは動作しません;(

ただし、これは機能します:

<?php echo Modules::run('categories/categories'); ?>

したがって、私の問題は、モジュールの名前とメソッド「メニュー」としての名前ではなく、名前adminでコントローラーをロードする方法です

CodeIgniter でどのように動作させることができるでしょうか?

編集:

コントローラー名を「admin」から「blablacontroller」などの別の名前に変更すると、魔法のように機能し始めることがわかりました。

「admin」と呼ばれる別のモジュールが既にあるので、これは問題になる可能性がありますか?

4

2 に答える 2