as_array()方法在多个结果中不起作用

时间:2011-10-07 18:21:58

标签: php mysql database orm

我使用idiorm作为ORM库,方法as_array()不适用于多行。

$ p = $ db-> find_many() - > as_array();

它给了我这个错误

Fatal error: Call to a member function find_many() on a non-object in

2 个答案:

答案 0 :(得分:0)

在这种情况下,

on a non-object表示$db对象尚未初始化。检查您是否使用$db = new ORM;之类的调用正确初始化变量。

答案 1 :(得分:0)

根据idiorm文档:

  

任何以find_many()结尾的方法链都将返回一个ORM数组   类实例,对应于查询的每一行。如果没有行   被发现后,将返回一个空数组。

所以基本上你试图在一个数组上调用一个方法,这个方法不是一个对象,因而是致命的错误。如果要将行作为数组,则需要执行的操作是循环遍历每个find_many()数组项,并将它们转换为具有单独as_array()调用的数组。或者,使用http://lt.php.net/array_map功能。