As_array()方法不能在多个结果中工作


as_array() method don't work in multiple results

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

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

它给了我这个错误

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

根据idiorm文档:

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

所以本质上你是在尝试调用数组上的方法,而数组不是对象,因此会出现致命错误。如果您想将行作为数组,您需要做的是循环遍历每个find_many()数组项并将它们转换为具有单独as_array()调用的数组。或者,使用http://lt.php.net/array_map函数。

on a non-object在这种情况下意味着$db对象尚未初始化。检查是否使用$db = new ORM;这样的调用正确地初始化了变量。