我尝试在两个表之间建立关系,文章和类别。这是一对一的关系articles.category_id = categories.id
。我有以下设置。
控制器/ home.cfc
<cfcomponent extends="Controller">
<cffunction name="index">
<cfset qFeaturedArticles = model("articles").findAll(
where="show_homepage = 1",
include="categories",
order="homepage_order"
) />
</cffunction>
</cfcomponent>
模型/ categories.cfc
<cfcomponent extends="Model">
<cffunction name="init">
<cfset hasOne("articles", foreignKey="category_id") />
</cffunction>
</cfcomponent>
模型/ articles.cfc
<cfcomponent extends="Model">
<cffunction name="init">
<cfset belongsTo("categories", dependent="nullify") />
</cffunction>
</cfcomponent>
这是我得到的错误。
在第49行的第4行找到无效的CFML构造.ColdFusion正在查看以下文字:
=
CFML编译器正在处理:
< / p>
答案 0 :(得分:4)
首先,我想指出categories.cfc模型。如果您指定hasOne
关系,那么在这种情况下,代码应如下所示:
<cfset hasOne("article", foreignKey="category_id") />
请注意,articles
代替article
,hasOne
需要one to many
。
但是,从字面上讲,类别和文章之间的关系应该是<cfcomponent extends="Model">
<cffunction name="init">
<cfset hasMany("articles", foreignKey="category_id") />
</cffunction>
。我的意思是一个类别可以有很多文章。
所以categories.cfc应该写成如下:
{{1}}