MyController:
class MY_Controller extends CI_Controller {
public $data = array();
function __construct() {
parent::__construct();
$this->data['errors'] = array();
$this->data['site_name'] = config_item('site_name');
}
}
AdminController:
class Admin_Controller extends MY_Controller {
function __construct() {
parent::__construct ();
$this->data ['meta_title'] = 'Admin Panel';
$this->load->helper ( 'form' );
$this->load->library ( 'form_validation' );
}
}
UserController:
class User extends Admin_Controller {
public function __construct() {
parent::__construct();
}
public function login() {
$this->data['subview'] = 'admin/user/login';
$this->load->view('admin/_layout_modal', $this->data);
}
}
View: _layout_modal.php
$this->load->view($subview);
echo $meta_title;
但是$ subview和$ meta_title都抛出了“Undefined variable”错误 .
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: subview
Filename: admin/_layout_modal.php
2 回答
尝试使用
$data['subview']
而不是$this->data['subview']
并在加载视图时使用$this->load->view('admin/layout',$data);
并在布局文件中调用<?php echo $subview; ?>
默认情况下,$ this-> load-> view直接将数据发送到浏览器 .
您似乎希望将视图加载为字符串格式,而不是直接发送到浏览器 .
您需要在“视图”功能中添加一个参数
我想你应该改变你的代码:
UserController的:
查看:_layout_modal.php
参考:
http://ellislab.com/codeigniter/user-guide/general/views.html