Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在results_array()中循环出现错误:试图获取非对象的属性_Php_Codeigniter - Fatal编程技术网

Php 在results_array()中循环出现错误:试图获取非对象的属性

Php 在results_array()中循环出现错误:试图获取非对象的属性,php,codeigniter,Php,Codeigniter,我有一个ci/bonfire应用程序。我正在尝试循环查询的结果。然而,在我看来,循环遍历记录及其各个字段的逻辑失败了,消息是我试图获取非对象的属性。 我已经确保在我的模型中,只有当我有东西要返回时,我才返回数据。。。像这样: if ($query->num_rows() > 0) { return $query->result_array(); //returns an object of data }

我有一个ci/bonfire应用程序。我正在尝试循环查询的结果。然而,在我看来,循环遍历记录及其各个字段的逻辑失败了,消息是我试图获取非对象的属性。 我已经确保在我的模型中,只有当我有东西要返回时,我才返回数据。。。像这样:

       if ($query->num_rows() > 0) 
        { 
            return $query->result_array(); //returns an object of data
        }
在视图中,我还添加了以下调试语句,以证明我正在恢复数据:

  print_r($records);
这给了我以下输出:(我只包含了一个子集,简单地说……)

最后,这里是我用来循环遍历$records的逻辑(也是唯一的子集):

  <?php foreach ($records as $record) : ?>
   <tr>
    <td><input type="checkbox" name="checked[]" value="<?php echo $record->category_id ?>" /></td>

使用

我们应该做这个把戏, Wezy使用

$record['category_id ']
我们应该做这个把戏,
Wezy

我不认为你得到的是一件物品(否则印刷品会有所不同)。
这就是说,“foreach”方法用于数组遍历,而不是对象,即使对象被提供给“foreach”循环,它也会被转换为等效的关联数组,因此,在您的例子中,“$record”不再是一个对象,而是一个关联数组。

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

尝试$record['category_id',而不是$record->category_id如果要使用对象,然后您应该提供->结果()而不是->结果数组()尝试$record['category\u id']而不是$record->category\u id如果您想使用对象,那么您应该提供->结果()而不是->结果数组()。是 啊这很有效。但我想知道的是为什么另一种方式不会。实际上,我正在使用带有CodeIgniter的bonfire和index()方法,bonfire为成功返回所有记录而创建的控制器使用了语法$record->category\u id。我将更新我的帖子以包含此内容information@dot-因为另一种方法用于类对象而不是数组如果需要对象,则返回$query->result()不是result_array()嘿。是 啊这很有效。但我想知道的是为什么另一种方式不会。实际上,我正在使用带有CodeIgniter的bonfire和index()方法,bonfire为成功返回所有记录而创建的控制器使用了语法$record->category\u id。我将更新我的帖子以包含此内容information@dot-因为另一种方法用于类对象而不是数组如果需要对象,则返回$query->result()不是结果_数组()
$record['category_id ']