CFWheels:Model FindAll()附加字母" s"在相关的表名称中

时间:2015-11-07 23:59:31

标签: cfwheels

checklist = model("user_checklist").findAll(include="tb_machine_checklist");

以上是我用于从名为user_checklist的表中获取记录的查询,它与名为tb_machine_checklist的表有关。

现在有一个名为" tb_machine_checklist"的表,但是它给了我一个错误的说法;

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

为什么" s"当我没有指定时添加?

3 个答案:

答案 0 :(得分:0)

我猜findAll中的include指定了模型名称,而不是表名。车轮ORM在某些情况下复数模型名称并将其映射到表名称。也许你可以明确地在模型中设置模型的表名?

答案 1 :(得分:0)

请务必阅读有关Conventions

的文档中的章节
  

CFWheels对数据库表和模型文件采用Rails风格的命名约定。将数据库表视为模型对象的集合;因此,它以复数名称命名。将模型对象视为数据库表中单个记录的表示;因此,它以单数词命名。

幸运的是,CFWheels允许您使用一些额外代码覆盖大多数约定。

tb_machine_checklist模型的init方法中,添加以下代码行:

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

然后CFWheels为您写的任何查询将使用您的单数表名称而不是传统的复数名称。

答案 2 :(得分:0)

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

相关问题