coldfusion - 如何动态调用 CFC 函数

标签 coldfusion cfc

我使用 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>

现在当然行不通了!有什么想法可行吗?或者有更好的处理方法?

最佳答案

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

编辑添加:

<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/

相关文章:

performance - 无法使用cfcontent传递缓存内容

coldfusion - 如何在 Coldbox 应用程序中使用 Cbauth 存储、检索和更新 session 用户数据?

不允许将导航项放置在右侧的 jquery 对象

coldfusion - 查询查询和 CAST 作为日期

coldfusion - 从 CFC 中包含 CFM 时的并发性和范围界定问题

coldfusion - 使用相对路径扩展CFC

mysql - 使用 mySQL 数据库在 CFC 中进行麻烦的 coldfusion 联合查询

audio - 在一个脚本中上传转换文件

jquery - $.ajax ColdFusion cfc JSON Hello World

csv - 如何将数组输出为逗号分隔的字符串?