Coldfusion 使用两种不同的方法调用cfinvoke
我有两个cfinvoke,我需要在一个cfm中使用它们Coldfusion 使用两种不同的方法调用cfinvoke,coldfusion,Coldfusion,我有两个cfinvoke,我需要在一个cfm中使用它们 <cfinvoke component="cfc/queries" method="getProjects" searchString="#Session.Auth.pref_name#" view="#Session.Auth.view#" returnvariable="Projects"> <cfinvoke component="cfc/queries" method="projectDetails" sea
<cfinvoke component="cfc/queries" method="getProjects" searchString="#Session.Auth.pref_name#" view="#Session.Auth.view#" returnvariable="Projects">
<cfinvoke component="cfc/queries" method="projectDetails" searchString="#URL.id#" projectsuffix="#URL.suffix#" returnvariable="Details">
返回两个查询,但当我以这种方式编码时,它不起作用。
我对ColdFusion还是新手,我不知道如何解决这个问题。因为两个函数都在同一个CFC中,所以您不想使用
cfinvoke
,因为它每次调用时都会重新创建对象。相反,请使用new
或createObject()
然后就可以引用函数了
<cfset Projects =
queries.getProjects(
searchString=session.Auth.pref_name,
view = session.Auth.view
)
>
<cfset Details =
queries.projectDetails(
searchString=url.id,
projectsuffix=url.suffix
)
>
在传递它们之前,您可能需要清理url.id
和url.suffix
。这将有助于解决注入问题
getProjects()
做什么 我们可以这样写
<!--- Object creation --->
<cfset query = CreateObject("component", "cfc.queries")/>
<!--- Function call --->
<cfset Projects = query.getProjects( searchString = session.Auth.pref_name, view = session.Auth.view )>
<cfset Details = query.projectDetails( searchString = session.Auth.pref_name, view = session.Auth.view )>
什么是“不工作”?有错误吗?另外,请注意使用来自不可信源的任何内容,如URL
。这是非常可注入的。不,没有错误,但是方法(getProjects)不返回任何projectAregetProjects
和projectDetails
在同一组件中?该组件是否需要init
函数?以及ColdFusion的哪个版本?是的,它们位于同一组件中,并且不需要init function函数列出所有项目扫描您提供的代码示例?它是否有返回
?
<!--- Object creation --->
<cfset query = CreateObject("component", "cfc.queries")/>
<!--- Function call --->
<cfset Projects = query.getProjects( searchString = session.Auth.pref_name, view = session.Auth.view )>
<cfset Details = query.projectDetails( searchString = session.Auth.pref_name, view = session.Auth.view )>