我有两个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" searchString="#URL.id#" projectsuffix="#URL.suffix#" returnvariable="Details">
返回两个查询,但是当我以这种方式编码时,它不起作用。 我对ColdFusion还是陌生的,我不知道该如何解决。
答案 0 :(得分:-1)
由于两个函数都在同一个CFC中,因此您不希望使用cfinvoke
,因为它每次调用时都会重新创建对象。而是使用new
或createObject()
。
<cfset queries = new location.to.cfc.queriesCFC()>
然后,您可以仅引用功能。
<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()
的作用是什么?
答案 1 :(得分:-1)
我们可以这样写,
<!--- 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 )>