我使用idiorm作为ORM库,方法as_array()不适用于多行。
$ p = $ db-> find_many() - > as_array();
它给了我这个错误
Fatal error: Call to a member function find_many() on a non-object in
答案 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功能。