我有一个ci / bonfire应用程序。我正在尝试循环查询结果。但是,我的视图中循环记录及其各个字段的逻辑失败,并显示我正在尝试获取非对象属性的消息。 我已经确定在我的模型中,如果我有东西可以返回,我只返回数据......就像这样:
if ($query->num_rows() > 0)
{
return $query->result_array(); //returns an object of data
}
在视图中,我还添加了以下调试语句来证明我正在获取数据:
print_r($records);
这给了我以下输出:(我只包括一个简短的子集..)
Array ( [0] => Array ( [category_id] => 59 [name] => procs [description] => [parent_id] => 4 [deleted] => 0 [created_on] => 2012-09-28 00:00:00 [modified_on] => 0000-00-00 00:00:00 ) [1] => Array ( [category_id] => 62 [name] => test [description] => [parent_id] => 4 [deleted] => 0 [created_on] => 2012-09-28 00:00:00 [modified_on] => 0000-00-00 00:00:00 )
最后,这是我用来循环$记录的逻辑(再次,只是子集):
<?php foreach ($records as $record) : ?>
<tr>
<td><input type="checkbox" name="checked[]" value="<?php echo $record->category_id ?>" /></td>
$record->category_id
编辑1
我的控制器篝火创建的index()方法从同一个表中返回所有记录,在视图中成功使用语法$record->category_id
。我知道我可以使用$record['category_id']
,但我想知道为什么我不能让它以其他方式工作。
任何建议将不胜感激。感谢。
答案 0 :(得分:2)
使用
$record['category_id ']
应该做的伎俩, Wezy
答案 1 :(得分:1)
我认为你没有得到一个对象(否则print_r会有所不同)。 也就是说,'foreach'方法用于数组遍历,而不是对象,即使一个对象被提供给'foreach'循环,它也被转换为等效的关联数组,因此,在你的情况下'$ record'不再是一个对象,但是一个关联数组。