我希望每個控制器都有一個方法_render_page,它加載主模板並傳遞數據對象。Codeigniter爲什麼我無法從MY_Controller加載視圖
我家的控制器類看起來是這樣的:
class Home extends MY_Controller {
function __construct() {
parent::__construct();
}
public function index() {
$data['title'] = "Site title";
$data['the_view'] = 'welcome_message';
$this->_render_page($this->layout, $data);
//$this->load->view($this->layout, $data); //This works ok..
}
}
MY_controller類:
class MY_Controller extends CI_Controller {
public $layout;
public $viewdata;
public function __construct() {
parent::__construct();
$this->layout = 'layout/master_template';
$this->viewdata = null;
}
public function _render_page($view, $data=null, $render=false) {
$this->viewdata = $data;
$this->viewdata['the_view'] = $view;
if($this->ion_auth->logged_in()) {
$user_obj = $this->ion_auth->user()->row();
$usr_data['username'] = $user_obj->username;
$user_obj = null;
$this->viewdata['usr_data'] = $usr_data;
}
$this->load->view($this->layout, $this->viewdata); //The code crashes here
}
}
當我瀏覽到家用控制器我什麼也沒得到,只是白色屏幕沒有任何錯誤......
它也不起作用。爲什麼我會在父類構造函數中調用render方法? – user568021
@ user568021糾正我,如果我錯了,但如果你不調用該方法將如何執行? – sunny
@ user568021你必須在某處調用它,也許在子類 – sunny