我正在尝试使用查询到数据库的结果在我的视图中填充多选。很抱歉,如果这是一个非常基本的问题 - 我对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
我错过了一些可以达到理想结果的查询吗?我应该只使用foreach
来创建一个新的数组,它将按照我想要的方式进行格式化吗?如果是这样,foreach
属于我的控制器或视图。
感谢您的帮助。
答案 0 :(得分: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);
}
答案 1 :(得分:1)
最有效的方法是使用活动记录,因为它只是从表中的“名称”列中获取数据)
$this->db->select('name')
->from('example');
return $this->db->get()->result();
如果您要使用foreach循环,如果您在控制器中处理结果,则必须在视图中再次处理它们,因此您也可以将整个结果数组发送到视图并在视图。如果您需要在视图中使用某个特定表的大多数列,这将非常有用。