PHP数组Foreach()将变量从数据库传递到CodeIgniter模板解析器

时间:2018-03-12 08:53:59

标签: php arrays codeigniter parsing foreach

这是我的数据库表(以前,我使用了垂直设计,但由于缺少数据类型支持,我改为水平设计):

+-----------+-------------------+
| 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,它是相关的,但不是重复的。

2 个答案:

答案 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>