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



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

+-----------+-------------------+
| 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>

上面的$data将打印:

Array
(
    [0] => Array
        (
            [site_name] => Awesome
            [site_url] => http://localhost/
        )
)

我认为我的控制器的代码看起来很愚蠢。有没有更好的方法来循环使用 foreach() 自动传递键和值,以便我可以将其与 CodeIgniter 的模板解析器(如 {site_name} {site_url}(一起使用?

有关其他参考,您可以看到此问题,它是相关的,但不是重复的。

试试这个

控制器

public function index() {
  $settings = $this->db->get('settings')->first_row();
  $this->parser->parse('default/header.php', $settings);
}

视图

<a href="{site_url}">{site_name}</a>

您当前的代码将工作,直到您有一行,如果您有很多行怎么办,此代码在这种情况下将不起作用,您将需要一些循环,例如foreach。

您可以将数据库操作保留在模型中,而不是控制器中。

否则看起来不错,不傻。 每个人都有自己的代码编写方式。

最新更新