cfinvoke有两种不同的方法

时间:2018-10-01 14:03:52

标签: 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"  searchString="#URL.id#" projectsuffix="#URL.suffix#" returnvariable="Details">

返回两个查询,但是当我以这种方式编码时,它不起作用。 我对ColdFusion还是陌生的,我不知道该如何解决。

2 个答案:

答案 0 :(得分:-1)

由于两个函数都在同一个CFC中,因此您不希望使用cfinvoke,因为它每次调用时都会重新创建对象。而是使用newcreateObject()

<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.idurl.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 )>