0

我有一个 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 ) 

最后,这是我用来循环 $records 的逻辑(同样,只是子集):

  <?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'],但我想知道为什么我不能让它以另一种方式工作。

任何建议,将不胜感激。谢谢。

4

2 回答 2

2

利用

$record['category_id ']

应该做的伎俩,Wezy

于 2013-01-27T15:30:41.920 回答
1

我认为您没有得到一个对象(否则 print_r 会有所不同)。也就是说,“foreach”方法用于数组遍历,而不是对象,即使将对象提供给“foreach”循环,它也会转换为等效的关联数组,因此,在您的情况下,“$record”不再是一个对象,而是一个关联数组。

于 2013-01-27T16:02:56.653 回答