gpt4 book ai didi

orm - ColdFusion ORM 在使用虚拟目录时找不到 CFC

转载 作者:行者123 更新时间:2023-12-01 12:59:19 26 4
gpt4 key购买 nike

我有一些具有关系的实体:

component name="Store" persistent="true"
{
property name="Products" fieldtype="one-to-many" cfc="Product";
}

component name="Product" persistent="true"
{
property name="Store" fieldtype="many-to-one" cfc="Store";
}

上面的代码被简化了。我的项目位于 C:\ColdFusion9\wwwroot\StoreTracker 中,一切运行良好。

但后来我不得不将它移动到一个虚拟目录。我将我的项目移动到 C:\Projects\StoreTracker,但现在 ORM 不再工作并出现以下错误:

Cannot load the target CFC Store for the relation property Store in CFC Product.

Could not find the ColdFusion component or interface Store.

如果我通过使用完全限定名称:

property name="Store" fieldtype="many-to-one" cfc="entities.Store";

然后 ORM 工作。有谁知道为什么将它移动到虚拟目录会导致 ORM 在错误的文件夹中搜索持久实体,是否有更简单的方法来更改它正在搜索的文件夹,这样我就不必完全限定每个关系?

编辑:

这是Application.cfc中的相关部分:

this.ormSettings = { cfclocation="entities" };

模型文件夹的文件夹结构:

C:\Projects\StoreTracker\entities

entities 文件夹下没有子文件夹,我所有的持久实体都在那里。

如果我将以下行添加到 Application.cfc,我就能让它正常工作:

this.mappings["/entities"] = "C:\Projects\StoreTracker\entities";

虽然我不确定为什么会这样。如果没有它,CF ORM 似乎可以很好地读取实体,如果它们只有简单的属性,但是当存在关系时,它会爆炸说找不到相关的 CFC。也许是一个错误?

最佳答案

如果您所说的虚拟目录是指在 Apache 或 IIS 中设置的虚拟目录,那么这是有道理的。这些虚拟目录存在于 Web 服务器中,而不是 ColdFusion 中。 CF 不知道他们。

您可能需要为您的应用程序创建一个 ColdFusion 映射。我不确定您的应用程序的确切结构或您放置 ORM 对象的位置,但您可能希望在伪构造函数区域中的 Application.cfc 中添加类似这样的内容。

<cfset application.mappings["/StoreTracker"] = "C:\Projects\StoreTracker" />

更新:哦,别忘了 ormReload()

关于orm - ColdFusion ORM 在使用虚拟目录时找不到 CFC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7603240/

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