0

私はこれを取得していますが、理由がわかりません.:

A PHP Error was encountered

Severity: Notice
Message: Undefined property: Menu::$menu_model
Filename: controllers/menu.php
Line Number: 16


Fatal error: Call to a member function get_menu() on a non-object in /home/.../modules/menu/controllers/menu.php on line 16

私はこれあれその他を見てきました。しかし、私の単純なコードでも、それでも壊れます。

コントローラー

class Menu extends CI_Controller
{
    /**
     * Constructor method
     */
    public function __construct()
    {
        parent::__construct();
    }

    function index($layout = -1)
    {
        $this->load->model('menu_model');
        // There is no $this->menu_model at this point. If I echo it out, it says property undefined as well.
        $data['menu'] = $this->menu_model->get_menu($layout);  // It fails on this line.
        $data['thisurl'] = $this->uri->uri_string();
        $this->load->view('menu.php');
    }

}

モデル

class Menu_model extends CI_Model 
{
    public function get_menu($layout = -1)
    {
        $menu = array(
            0 => array('href' => '/', 'label' => 'Home', FALSE),
            1 => array('href' => '/about', 'label' => 'About', FALSE),
            2 => array('href' => '/help', 'label' => 'Help', FALSE)
        );

        return $menu;
    }
}

ファイルが正常にロードされました。クラス名を Menu_model_fail... に変更するとエラーが発生し、load->model('menu_model_break') を変更するとエラーも発生します。だから私はそれがファイルを正しくロードしていることを知っています。

4

1 に答える 1

3

MXモジュラー拡張機能を使用しているようです。コントローラーを変更して、CI_ControllerではなくMX_Controllerから拡張する必要があります。

于 2012-11-09T18:33:20.053 に答える