gpt4 book ai didi

coldfusion - 如何动态调用 CFC 函数

转载 作者:行者123 更新时间:2023-12-04 05:26:55 26 4
gpt4 key购买 nike

我使用CFBuilder“创建CFC”插件为表创建服务,所以我可以玩OOD。现在我正在努力使用以动态方式生成的“更新”功能。

我调用了一个 cfc,以获取帐户的结构,并传递一个 ID。

<cfinvoke component="cfc.Account.accountService" method="getAccount" returnvariable="Account" AccountID="#session.auth.AccountID#">

我可以使用手动代码调用更新函数。
<cfset Account.setAccountFirstname('#form.AccountFirstname#')>

这工作正常,但我想根据表单中的数据动态更新结构。所以我想循环表单中的字段并生成以下内容
<!--- Dynanic call of submitted fields --->
<cfloop list="#form.FieldNames#" index="i">
<cfset Account.set[i]('#Evaluate('#i#')#')>
</cfloop>

现在当然不行了!有什么想法会起作用吗?或者有更好的处理方式?

最佳答案

您尝试使用 invoke 执行的操作不起作用,这是因为您将属性作为独立组件参数(即类路径)传递,您需要传入对象实例。

编辑添加:

<cfset account = new Account()/>
<cfset data = {
accountId = session.auth.AccountID
}/>
<cfset fieldNames = listToArray(form.fieldNames)/>
<cfif ! arrayIsEmpty(fieldNames)>
<cfloop array="#fieldNames#" index="fieldName">
<cfinvoke
component="#account#"
method="set#FieldName#"
returnVariable="methodResult"
argumentCollection="#data#"
/>
</cfloop>
</cfif>

关于coldfusion - 如何动态调用 CFC 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13100227/

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