我是CodeIgniter的新手,我遇到了以下问题:
当我从控制器中加载视图时,我使用了以下代码:
$this->load->view('includes/header');
$this->load->view('includes/main_menu');
$this->load->view('show_users');
$this->load->view('includes/footer');
现在我创建了一个加载标题,菜单,内容和页脚的模板,因此我不必在每个控制器中加载所有这些视图。这一切都很好,直到我通过模板向视图传递数据。
现在的情况是这样的: 控制器 - 模板 - 视图
控制器:(show_users.php)
$data['userdata'] = $this->users_model->get_all_users();
$data['page'] = 'show_users';
$this->load->view('template', $data);
模板:(template.php)
$this->load->view('includes/header');
$this->load->view('includes/main_menu');
$this->load->view($page, $userdata);
$this->load->view('includes/footer');
查看:(show_users.php)
<div id="users_table">
<table border="1">
<tr>
<th>ID</th><th>First Name</th><th>Last Name</th>
</tr>
<?php
foreach($userdata as $r): ?>
<tr><td><?php echo $r['id']; ?></td><td><?php echo $r['firstName']; ?></td><td><?php echo $r['lastName']; ?></td></tr>
<?php endforeach; ?>
</table>
</div>
现在我使用
将'userdata'变量传递给视图$this->load->view($page, $userdata);
并且工作正常。但是我想在整个网站上使用这个模板,所以第二个参数并不总是$ userdata。 (可以是随机数组,字符串等,具有不同的var名称)
有什么方法可以解决这个问题吗?
提前致谢
答案 0 :(得分:0)
我认为这样做会很好,假设您使用合理的命名:
$data['userdata'] = $this->users_model->get_all_users();
$data['page'] = 'show_users';
$this->load->view('template', $data);
$this->load->view($page, $userdata);
也可以是:
$data['view_data'] = $this->users_model->get_all_users();
$this->load->view($page, $view_data);
通过在控制器中始终使用$data['view_data']
,只要索引保持不变,就可以为其分配任何所需的内容。
更多例子:
$data['view_data'] = some_other_method_thats_not_getting_users();
$this->load->view($page, $view_data);