遇到PHP错误消息:未定义的变量:menu - CodeIgniter

时间:2018-03-21 07:04:06

标签: php codeigniter-3

<?php

class Dashboard extends CI_Controller {

    private $menu;

    public function __construct() {
        parent::__construct();
        $this->load->model('menu_model');

        $this->$menu = $this->menu_model->generateTree($items = array());
    }

    public function index() {
        $data['menu'] = $this->$menu;
        $this->load->view('dashboard/dashboard', $data);
    }

}

大家好,我在构造函数中得到菜单详细信息。我也可以得到结果。但它带有错误 &#34;遇到PHP错误 严重性:注意 消息:未定义的变量:菜单 &#34;

5 个答案:

答案 0 :(得分:1)

您需要在菜单前删除美元符号,因为您正在引用局部变量

 $this->menu = $this->menu_model->generateTree($items=array());

答案 1 :(得分:0)

class Dashboard extends CI_Controller {

private $menu;

public function __construct() {
    parent::__construct();
    $this->load->model('menu_model');

    $this->menu = $this->menu_model->generateTree($items = array());
}

public function index() {
    $data['menu'] = $this->menu;
    $this->load->view('dashboard/dashboard', $data);
}

}

答案 2 :(得分:0)

$

中删除$this->$menu
public function __construct()
{
    parent::__construct();
    $this->load->model('menu_model');

    $this->menu = $this->menu_model->generateTree($items=array());
}

public function index()
{        
    $data['menu'] = $this->menu;
    $this->load->view('dashboard/dashboard', $data);

}

答案 3 :(得分:0)

在您的文件中使用以下$menu,希望此解决方案可以为您提供帮助。

$this->menu

答案 4 :(得分:0)

访问类变量时,您不需要在 $ this 之后第二次使用 $ 所以它就像下面的代码

例如

$this->variable_name

您的代码如下

<?php

class Dashboard extends CI_Controller {

private $menu;

public function __construct() {
    parent::__construct();
    $this->load->model('menu_model');

    $this->menu = $this->menu_model->generateTree($items = array());
}

public function index() {
    $data['menu'] = $this->menu;
    $this->load->view('dashboard/dashboard', $data);
}

}