我试图防止自己在每个控制器中一遍又一遍地重复相同的代码。所以我将获取数据的函数放在父控制器中,并且我试图在子控制器中传递该数据。
class Frontend_Controller extends MY_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('configOptionsModel');
$this->db->where('configid = "2"');
$specialdata['bgimage'] = $this->configOptionsModel->get();
}
}
这是子控制器的代码
class Home extends Frontend_Controller {
public function __construct() {
parent::__construct();
print_r($this->specialdta); // line where error occurs
die();
}
public function index()
{
$data['main_content'] = 'home';
$this->load->view('frontEnd/template',$data);
}
}
我收到以下错误:
A PHP Error was encountered
Severity: Notice
Message: Undefined property: Home::$specialdta
Filename: controllers/home.php
Line Number: 9
果然,第9行是: print_r($this->specialdta);
我知道如果你扩展一个控制器(类),你可以从父控制器(类)访问方法和属性,因为它们被声明为公共的。
谁能解释我做错了什么?
问候,佐兰