2015-11-07 35 views
0
checklist = model("user_checklist").findAll(include="tb_machine_checklist"); 

以上是我用於從名爲user_checklist的表中獲取記錄的查詢,它與名爲tb_machine_checklist的表相關。CFWheels:Model FindAll()在相關表名中附加字母「s」

現在有一個名爲「tb_machine_checklist」的表,但它給了我一個錯誤說:

The "tb_machine_checklists" table could not be found in the database. 

爲什麼當我沒有指定時添加了「s」?

回答

0

請務必閱讀有關Conventions的文檔中的章節。

CFWheels對數據庫表和模型文件採用Rails風格的命名約定。將數據庫表視爲模型對象的集合;因此,它被命名爲複數名稱。將模型對象視爲數據庫表中單個記錄的表示形式;因此,它被命名爲單數詞。

幸運的是,CFWheels讓你用一點額外的代碼覆蓋大多數約定。

在你tb_machine_checklist模型init方法,添加此行的代碼:

<cffunction name="init"> 
    <cfset table("tb_machine_checklist")> 
</cffunction> 

那麼任何的查詢CFWheels經常爲您將使用單一的表名,而不是傳統的複數之一。

0

我猜findAll中的包含指定了模型名稱,而不是表格名稱。車輪ORM在某些場合複數模型名稱並將其映射到表名稱。也許你可以在模型中明確設置模型的表名?

0

我解決了這個問題,我的模型與我的數據庫表沒有相同的名稱。一旦做得好,這個問題就消失了。