我为我的项目构建了一个布局模板(参见布局功能)。模板系统将页眉,页脚和左侧添加到页面,还将当前视图呈现为"middle"
。
问题是我无法正确包含$data
变量。这是为了让我的数据打印出来,我需要像下面的选项1一样包含它。
选项1
$this->load->view('profile_view', $data);
布局功能
public function layout () {
$this->template['header'] = $this->load->view('layout/header', $this->Front_End_data, true);
$this->template['left'] = $this->load->view('layout/left', $this->Front_End_data, true);
$this->template['middle'] = $this->load->view($this->middle, $this->Front_End_data, true);
$this->template['footer'] = $this->load->view('layout/footer', $this->Front_End_data, true);
$this->load->view('layout/index', $this->template);
这可以渲染模板,但我需要$data
包含
function index()
{
$data = array();
$this->load->model('user_profile/profiles_model');
$query = $this->profiles_model->get_bank();
if (!empty($query)) {
$data['records'] = $query;
}
$this->middle = 'profile_view';
$this->layout();
}
对此最好的解决方案是什么?
更新
我尝试了一些似乎部分工作的东西,但是复制了两次视图,一个在正确的位置有一个错误,任何想法?
function index()
{
$data = array();
$this->load->model('user_profile/profiles_model');
$query = $this->profiles_model->get_bank();
if (!empty($query)) {
$data['records'] = $query;
}
// $this->middle = 'profile_view';
$this->load->view($this->middle = 'profile_view',$data);
$this->layout();
// $this->layout($data);
}
更新
这也有效,但不是最好的方式
function index()
{
$data = array();
$this->load->model('user_profile/profiles_model');
$query = $this->profiles_model->get_bank();
if (!empty($query)) {
$data['records'] = $query;
}
// $this->load->view($this->middle = 'profile_view',$data);
$this->template['middle'] = $this->load->view ($this->middle = 'profile_view',$data, true);
$this->layout();
// $this->middle = 'profile_view';
// $this->layout($data);
}
答案 0 :(得分:0)
使用Phil Sturgeon创建的this library。它非常棒,易于设置和使用。我使用codeigniter构建的任何项目都是我添加的第一件事。为什么在已经有飞机可用的情况下重新创建轮子?
答案 1 :(得分:0)
为什么不简单地将$data
传递给布局方法?
$this->layout($data);
答案 2 :(得分:0)
它不优雅,但这是我如何解决它
$this->template['middle'] = $this->load->view ($this->middle = 'pages/update_view',$data, true);
$this->layout();