本文介绍了解析器将CodeIgniter数据库行放入数组中,以供视图内置模板使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

1)我原来的settings桌子设计:

1) My original settings table design:

-------------------------------------------
site_name | site_slogan | site_url
-------------------------------------------
Company   | This rocks! | http://localhost/
-------------------------------------------

但是,我想重新设计,以便可以显式地放置不同的数据类型,例如char(255)或varchar(512),或者将来可能对每行设置INT:

However, I would like to redesign so I can explicitly put different datatypes like char(255) or varchar(512), or maybe INT in the future for each row:

-------------------------------
name        | value
-------------------------------
site_name   | Company
site_slogan | This rocks!
site_url    | http://localhost/
site_phone  | 123465798
-------------------------------

在控制器中,我想使用$this->parser->parse('page',$data);,但我不知道如何将数据库查询的结果循环放入数组,以便在视图中可以像这样使用它们:

In my controller, I would like to use $this->parser->parse('page',$data); but I don't know how to put the result of my database query into arrays in a loop so that in my Views I can use them like this:

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

这是我收到的反馈$data = $this->db->select("*")->from('settings')->get()->result_array();的结果.

This the result of $data = $this->db->select("*")->from('settings')->get()->result_array(); from the feedback I received.

Array
(
    [0] => Array
        (
            [name] => site_name
            [value] => My Name
        )

    [1] => Array
        (
            [name] => site_tagline
            [value] => My Tagline
        )

    [2] => Array
        (
            [name] => site_url
            [value] => My URL
        )

)

这就是我解析并使其在视图{site_name} {site_tagline} {site_url}中可用的方式.

So this is how I parse and make them usable in views {site_name} {site_tagline} {site_url} .

$data = array(
   'site_name' => $data['0']['value'],
   'site_tagline' => $data['1']['value'],
   'site_url' => $data['2']['value']
);
$this->parser->parse('page', $data);

推荐答案

您可以将$data值分配给新数组,然后传递新数组:

You could assign the $data values to a new array and pass the new array instead :

foreach ($data as $key => $cfg) {
    $new_data[$cfg['name']] = $cfg['value'];
}
$this->parser->parse('page', $new_data);

这篇关于解析器将CodeIgniter数据库行放入数组中,以供视图内置模板使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-03 11:31