2015-11-07 18 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

我解决了这个问题,我的模型与我的数据库表没有相同的名称。一旦做得好,这个问题就消失了。