gpt4 book ai didi

mysql - 使用Model建立表间内连接

转载 作者:行者123 更新时间:2023-11-29 01:39:40 27 4
gpt4 key购买 nike

我正在尝试建立两个表之间的关系,文章类别。这是一对一的关系,其中 articles.category_id = categories.id。我有以下设置。

controllers/home.cfc

<cfcomponent extends="Controller">

<cffunction name="index">

<cfset qFeaturedArticles = model("articles").findAll(
where="show_homepage = 1",
include="categories",
order="homepage_order"
) />

</cffunction>

</cfcomponent>

模型/类别.cfc

<cfcomponent extends="Model">

<cffunction name="init">
<cfset hasOne("articles", foreignKey="category_id") />
</cffunction>

</cfcomponent>

模型/文章.cfc

<cfcomponent extends="Model">

<cffunction name="init">
<cfset belongsTo("categories", dependent="nullify") />
</cffunction>

</cfcomponent>

这是我遇到的错误。

在第 4 行第 49 列发现无效的 CFML 构造。ColdFusion 正在查看以下文本:

=

CFML 编译器正在处理:

  • 第 4 行第 16 列以 belongsTo 开头的表达式。此消息通常是由表达式结构。
  • 从第 4 行第 10 列开始的 cfset 标记。
  • 从第 4 行开始的 cfset 标记, column 10.
包含或处理的文件的具体顺序是:\cfusion\wwwroot\foo\index.cfm,行:4

最佳答案

首先我想说一下categories.cfc模型。如果您指定 hasOne 关系,那么在这种情况下,代码应如下所示:

<cfset hasOne("article", foreignKey="category_id") />

请注意,在 hasOne 的情况下,您需要放置 article 而不是 articles

但是,从字面上看,类别和文章之间的关系应该是一对多。我的意思是一个类别可以有很多文章。

所以categories.cfc应该这样写:

<cfcomponent extends="Model">

<cffunction name="init">
<cfset hasMany("articles", foreignKey="category_id") />
</cffunction>

关于mysql - 使用Model建立表间内连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28554061/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com