这是我的数据库表(以前,我使用了垂直设计,但由于缺少数据类型支持,我改为水平设计):
+-----------+-------------------+
| site_name | site_url |
+-----------+-------------------+
| Awesome | http://localhost/ |
+-----------+-------------------+
控制器:
public function index() {
$data = $this->db->select("*")->from('settings')->get()->result_array();
$new_data = $data['0'];
$this->parser->parse('default/header.php', $new_data);
}
查看:
<a href="{site_url}">{site_name}</a>
以上$数据将打印:
Array
(
[0] => Array
(
[site_name] => Awesome
[site_url] => http://localhost/
)
)
我认为我的控制器代码看起来很愚蠢。是否有更好的方法循环使用foreach()
自动传递密钥和值,以便我可以将它与CodeIgniter的模板解析器一起使用,例如{site_name}
{site_url}
?
有关其他参考,您可以看到this question,它是相关的,但不是重复的。
答案 0 :(得分:0)
你的当前代码一直有效,直到你有一行,如果你有很多行怎么样,这个代码在这种情况下不会起作用,你需要像foreach这样的循环。
您可以将数据库操作保留在模型中而不是控制器中。
否则看起来好不傻。每个人都有自己的编写代码的方式。
答案 1 :(得分:0)
试试这个
控制器
public function index() {
$settings = $this->db->get('settings')->first_row();
$this->parser->parse('default/header.php', $settings);
}
查看
<a href="{site_url}">{site_name}</a>