2013-07-31 52 views
0

我試圖使用Eloquent CRM從數據庫中提取記錄。我的表的主鍵字段名稱是"user_id"。奇怪的是,每次我使用User::find()並傳遞user_id數,我得到Laravel Model :: find()拋出SQLSTATE錯誤

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'id' in 'where clause' 
(SQL: select * from `users` where `id` = ? limit 1) (Bindings: array (0 => 8,)) 

我假設ORM進行調用假設表的id字段名稱爲"id",而不是"user_id"。我如何檢查它是否能正確看到它應該看到的內容。我也嘗試將主鍵字段user_id更改爲「id」,因爲ORM似乎期待並且工作正常,但是我遵循數據庫模式中的命名約定,因此我希望堅持"user_id"

任何形式的幫助將不勝感激。

謝謝

回答

1

我已經解決了這個問題。我所要做的就是正確地閱讀文檔。對不起,急着問這個簡單的問題。

Eloquent假定默認情況下任何表的主鍵字段都被命名爲「id」。要改變這種情況,只需將$ primaryKey字段覆蓋到數據庫表中相應的字段名稱即可。

-1
class User extends Eloquent implements .... 

    public $publicKey = 'user_id'; 

    ... 
+0

這不是您要設置的$ publicKey,而是$ primaryKey。它應該受到保護,以便可以更改它,而不是公開。 – Gyhth