0

我正在尝试使用来自数据库的查询结果填充我的视图中的多选。抱歉,这是一个非常基本的问题——我对 CodeIgniter 和 MVC 有点陌生。

我的模型只是从表中获取所有记录:

function getAll() {
            $query = $this->db->get('example');
            return $query->result_array();
    }

然后我希望将结果传递给我的视图以填充多选表单元素。但是,返回的关联数组没有提供我想要的结果。

我得到什么:

    [0] Array
        (
            [id] => 6
            [name] => Bob    

我想得到什么:

[0] Array
    (
        [6] => Bob
        [7] => Linda

我的查询是否遗漏了一些可以达到我想要的结果的东西?我应该只使用 aforeach创建一个新数组,该数组将按照我想要的方式进行格式化吗?如果是这样,这是否foreach属于我的控制器或视图。

感谢您的帮助。

4

2 回答 2

2

试试这个:

function getAll()
{
    $items = $this->db->get('example')->result_array();
    if(empty($items))
        return array();

    $res = array();
    $i   = 0; 
    while($i < count($items))
    {
        $res[$items[$i]['id']] = $items[$i]['name'];
        ++$i;
    }

    return array($res);
}
于 2013-05-16T12:33:50.177 回答
1

最有效的方法是使用活动记录,因为它只是从表中的“名称”列中获取数据)

$this->db->select('name')
         ->from('example');

return $this->db->get()->result();

如果您要使用 foreach 循环,如果您在控制器中处理结果,则必须在视图中再次处理它们,因此您不妨将整个结果数组发送到视图并在视图中处理它们。如果您需要在视图中使用一个特定表的大部分列,这很有用。

于 2013-05-15T21:01:42.830 回答