2011-07-17 27 views
0

我試圖編輯數據庫中的記錄,但劇本給了我以下錯誤:CakePHP的錯誤:調用一個成員函數getColumnType()

致命錯誤:調用一個成員函數getColumnType( )在一個非對象的G:\ wamp \ www \ a11 \ a \ cake \ libs \ model \ model.php on line 980

奇怪的是,如果我從表單中刪除id(所以它創建一個新的記錄)它不抱怨。這意味着id列有問題。

但是什麼?

之前的保存我轉儲將被保存在數組:

Array 
(
[Process] => Array 
    (
     [id] => 5 
     [oobject] => 1 
     [oproperty] => Number 
     [wproperty] => Payed 
     [do] => somecode 
     [active] => 1 
     [name] => Testing 
     [changed_user_id] => 3 
     [selftrigger] => 1 
    ) 

) 

保存代碼現在看起來是這樣的:

$d = $this->data; 
if ($this->Process->save($d)) { 

id存在於數據庫

我感謝任何幫助!

回答

1

id列標有「id」(不帶引號),對嗎?如果您使用MySQL,請確保ID類型爲int(不是任何變體),並且它是具有自動增量的主鍵。模型類正常運行需要這些設置。

從這個錯誤,它看起來像你已經設置id列以外的其他東西。

+0

謝謝你的答案,斯科特。它被設置爲bigint,主鍵和auto_increment - 就像我所有的其他表= /有沒有我應該知道的緩存文件?我在tmp/cache/models目錄中刪除了一個,但沒有任何效果。 – Magnus

+0

它必須設置爲int,而不是int。當它被設置爲除int以外的任何內容時,Cake不會識別一個id列。嘗試將列設置爲int並查看問題是否消失。 –

+0

查看此鏈接查看蛋糕支持的MySQL數據類型... http://book.cakephp.org/view/1002/Creating-Database-Tables#Data-Type-Associations-by-Database-1003 –

相關問題