- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我是 ColdBox(和一般的 mvc)的新手,一直试图自己解决这个问题,但无济于事。查找功能在我们的程序站点上运行良好,我试图通过一点一点地将它切换到 mvc 来弄湿我的脚。
在我的 mvc 测试站点上,我有一个查询,当在我的本地机器上执行时,它会正确返回预期的元素。但是当它在实时站点上运行时,无论返回数组中有多少元素,它都会重复第一个元素。
本地机器:ColdBox 4.3、Lucee 4.5.5、MySQL 5.6.37、PHPMyAdmin 4.4.15
上线:ColdBox 4.3、ACF 2016、MySQL 5.7、PHPMyAdmin 4.6.6
这是我的 CFC 中的函数:
function getMilestonesByDate(required string pickedMonth='', required string pickedDay='') {
transaction {
queryMilestonesByDate = queryExecute("
SELECT tbl_milestones.ID as milestoneID, tbl_milestones.event, tbl_milestones.date
FROM tbl_milestones
WHERE MONTH(tbl_milestones.date) = :pickedMonth AND DAY(tbl_milestones.date) = :pickedDay AND YEAR(tbl_milestones.date) != 1111
ORDER BY tbl_milestones.date ASC
", {
pickedMonth: {value: arguments.pickedMonth, cfsqltype: "cf_sql_varchar"},
pickedDay: {value: arguments.pickedDay, cfsqltype: "cf_sql_varchar"}
}
);
}
milestonesByDate = arrayNew(1);
for (row in queryMilestonesByDate) {
returnStruct = StructNew();
returnStruct["milestoneID"] = queryMilestonesByDate.milestoneID;
returnStruct["event"] = queryMilestonesByDate.event;
returnStruct["date"] = dateFormat(queryMilestonesByDate.date, "full");
arrayAppend(milestonesByDate, returnStruct);
}
return serializeJSON(milestonesByDate);
}
同样,这在本地运行良好。例如,它将在 12 月 26 日显示两个不同的里程碑——一个在 1986 年,一个在 1995 年。但是在实时站点上,它将显示 1986 年的里程碑两次。
但是,仅在实时站点上的 PHPMyAdmin 中运行 SQL 会按预期工作:
SELECT tbl_milestones.ID as milestoneID, tbl_milestones.event, tbl_milestones.date
FROM tbl_milestones
WHERE MONTH(tbl_milestones.date) = '12' AND DAY(tbl_milestones.date) = '26' AND YEAR(tbl_milestones.date) != 1111
ORDER BY tbl_milestones.date ASC
所以查询似乎没问题。但是某处正在处理某些东西,我无法弄清楚。如果有帮助,这里是我的事件处理程序中对函数的调用:
function showMilestonesByDate( event, rc, prc ) {
prc.milestonesByDate = milestoneModel.getMilestonesByDate(pickedMonth,pickedDay);
event.renderData( type="json", data=prc.milestonesByDate );
}
所选月份和所选日期的值来自 jQuery UI 日期选择器。如果有人认为它会有所帮助,我可以发布该代码。但是,无论是否使用日期选择器,或者即使它是否出现在页面上,只要从测试页面上的硬编码值中转出查询结果都会显示相同的问题。
请注意,这在我们的程序网站上一切正常,但我很难将事情切换到 mvc,如果有任何关于我哪里出错的提示或建议,我将不胜感激!提前谢谢大家!
更新:这里是来自本地站点的 prc.milestonesByDate 转储:
[{"date":"1986 年 12 月 26 日星期五","event":"俄罗斯 Mil Mi-34 首飞","milestoneID":435},{"date":"12 月 26 日星期二, 1995","event":"印度海军 HAL Dhruv(PT4 原型(prototype)机)首飞","milestoneID":428}]
和现场直播一样:
[{"date":"1986 年 12 月 26 日星期五","milestoneID":435,"event":"俄罗斯 Mil Mi-34 首飞"},{"date":"12 月 26 日星期五, 1986","milestoneID":435,"event":"俄罗斯 Mil Mi-34 首飞"}]
最佳答案
这里发生的问题是 for
ACF 和 Lucee 中查询的循环表现有点不同。
我不确定这是什么原因。但我观察到的是 for
Lucee 中的循环类似于 <cfloop query="">
.但在 ACF 中并非如此。在 ACF 中,您需要使用变量 row
在循环内而不是使用 queryMilestonesByDate
.
for (row in queryMilestonesByDate) {
returnStruct = StructNew();
returnStruct["milestoneID"] = queryMilestonesByDate.milestoneID;
returnStruct["event"] = queryMilestonesByDate.event;
returnStruct["date"] = dateFormat(queryMilestonesByDate.date, "full");
arrayAppend(milestonesByDate, returnStruct);
}
因此,为了使循环在 ACF 和 Lucee 中都有效,您可以按以下方式更改它(我认为这是正确的方法,因为您使用的是 for (row in queryMilestonesByDate)
)。
for (row in queryMilestonesByDate) {
returnStruct = StructNew();
returnStruct["milestoneID"] = row.milestoneID;
returnStruct["event"] = row.event;
returnStruct["date"] = dateFormat(row.date, "full");
arrayAppend(milestonesByDate, returnStruct);
}
有关其工作原理的示例。
关于mysql - cfc 中的查询在本地返回 [n] 项,但在实时站点上重复第一个元素 [n] 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47983998/
我有一个具有多种功能的 cfc 文件 (info.cfc),如下所示。 ... SELECT
我将从 ColdFusion 8 迁移到 ColdFusion 10。 目前,在我的Unix根目录下,我只有1个Application.cfm,在这个根目录下我有大约10个子目录(以前的程序员就是这样
我需要一种方法来获取 Coldfusion 返回的 json 并将其显示在 jquery 中我可以很好地显示第一个结果,但如果返回多于一条记录,我就会陷入困境这是我的 cfc In this que
我有一个使用 cfc 的页面。像这样: 如果 cfc 位于文件夹内,我该如何调用它们?截至目前,它们仅在处于同一级别或同一文件夹内时才有效?您如何称呼处于不同级别的 cfc? 还是我不理解 cfc
我有一组从两个单独的应用程序范围访问的 CFC。 一个/Application.cfc 位于根目录中。 另一个应用程序在/Admin/Application.cfc cfc 位于/_cfc/ 如果我从
我已经看到了在父文件夹中扩展 cfc 可以访问父文件或 CF 管理的各种解决方案,但我还没有看到一个可行的解决方案来在“共享”/兄弟文件夹中扩展 cfc 而不访问父文件夹。 This solution
在我被要求研究冷融合应用程序中一些奇怪的间歇性错误之前,我没有使用过冷融合。 在阅读了有关范围之后,我认为问题是因为我的 cfc 函数中的所有变量都没有使用 var关键字,并且在各种函数中使用相同的变
参加晚会比较晚,我正试图过渡到使用 CFC 以简化事情。在这个阶段,我只是试图找到我的脚并理解它们 - 使用 CFWACK 9 作为指导。 然而,我的第一次尝试让我难住了! 这是我的 CFC 中的内容
好的,我是 Coldfusion 组件的新手,尽管我认为我在概念上理解它们。我接手了一个项目,在数据访问模型中,我只有一个 cfm,里面有这一行: 我需要修改这个组件背后的sql,但是无法根据这个
在装有 IIS 8.5 的 Server 2012 R2 上运行 ColdFusion 10 Update 18。我对 CFC 进行了更改,并创建了一个新的 CFC 文件来进行测试。我所做的更改没有反
对问题短语感到抱歉。我找不到更好的方式来描述它。但我的问题如下: 我有 3 个 cfc,即 settings.cfc、prices.cfc 和 helpers.cfc。这些 cfc 扩展了第 4 个
你怎么能管理这样的事情?我尽我最大的努力将子系统设计为可重用,但只有某些特定于站点的东西必须自定义(例如 Account 实体中的字段,或 orm 注释中的 cfc="")。 我曾想过使用 SVN 并
有没有办法通过像 firebug 或其他浏览器插件这样的胸罩来从 cfc 文件中进行跟踪或记录控制台。 如果这似乎是一个愚蠢的问题,我对 CF 完全陌生,很抱歉。 最佳答案 如果您希望日志在浏览器中可
我目前正在使用 标记调用 CFC 并传递参数。这真的很方便,因为我可以使用标签只传递我想要的参数,例如: 如果我使用 new()或 createObject()方法来创建 C
这个问题在这里已经有了答案: 9年前关闭。 Possible Duplicate: restart application without restarting server? 如何在不重置 Cold
我已经在 ColdFusion 中编写了一个数据库加载脚本,但我遇到了脚本缓慢耗尽内存的问题。我已经使用 将每个表负载拆分到它自己的线程中,并且当内存低于 50% 时我正在调用垃圾收集器(确保在 gc
在我们的 Portal application.cfc 中,我们定义(设置)我们的 DSN 连接,如下所示: (Main DB) (2nd DB) (3rd DB) 这些在标签中。然后我也移到了
我需要一个现实检查 - 希望一个解释(如果我的现实是错误的)。 CF应用框架评估事物的方式是这样的(我的理解) - 请求被传递到 cfserver cf 查找 application.cfm 或 cf
我使用CFBuilder“创建CFC”插件为表创建服务,所以我可以玩OOD。现在我正在努力使用以动态方式生成的“更新”功能。 我调用了一个 cfc,以获取帐户的结构,并传递一个 ID。 我可以使用手
我在网上做了一些搜索,看看这是否可以完成,但没有找到任何可以说的内容。我在根目录下有一个 application.cfc,并且有几个子文件夹,我希望它的功能相同,只有细微的差别。例如,根处的 cfc
我是一名优秀的程序员,十分优秀!