我使用idiorm作爲ORM庫,而as_array()方法不適用於多行。as_array()方法在多個結果中不起作用
$ p = $ db-> find_many() - > as_array();
它給了我這個錯誤
Fatal error: Call to a member function find_many() on a non-object in
我使用idiorm作爲ORM庫,而as_array()方法不適用於多行。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;
這樣的呼叫檢查你是否正確初始化變量。
我正確初始化它,並且該方法「as_array()」正常工作與find_one() - > as_array(),問題是在多行的結果。 –
我看到,這只是錯誤消息,表明它試圖在一個實際上不是對象的對象上找到名爲'find_many'的成員函數。由於'find_many'函數只在$ db對象上被調用,所以它不會被初始化,或者至少不會在代碼中的某個對象上調用。 – Clive