我正在 Coldfusion8 中迈出第一步。我设法使用我正在调用的 cffunction 设置组件/服务。
在函数内部,我需要构建一个包含错误和相应错误消息的 2x2 表。错误消息是多语言的并存储在 MySQL 表中。
问题:
我找不到从CFFunction标记内引用我的变量的方法。这不起作用:
// select from database
<cfparam name="Session.Sprache" default="DE">
    <cfquery datasource="iln" name="texte">
        SELECT *
        FROM languages
        WHERE sprache = "#Session.lang#"
     </cfquery>
<cffunction name="createErrMsgsLog" returntype="object">
    // create and populate 
    <cfset allErrMsgs=ArrayNew(2)>
    <cfset allErrMsgs[1][1]="firma">
    // not defined
    <cfset allErrMsgs[1][2]="#tx_validate_firma#">
    ....
 </cffunction>
问题:如何在CFfunction
中
正确引用我的变量,也就是 #tx_validate_firma# 。它们总是未定义的。
编辑:
好的。这似乎有效:
在application.cfc里面我打电话:
<cfinvoke component="services.errorMsg"
     method="createErrMsgsLog"          
     returnvariable="errMsgs">
</cfinvoke>         
在errorMsg.cfc里面我正在做:
<cfcomponent displayname="errorMsg">    
    <cffunction name="createErrMsgsLog">
        <cfquery datasource="mine" name="texte">
            SELECT *
            FROM sprachen
            WHERE sprache = "#Session.Sprache#"
        </cfquery>
        <cfoutput query="texte">
            // column name = value
            <cfset "#trim(bezeichner)#" = "#trim(textinhalt)#">
        </cfoutput>
        // build array
        <cfset allErrMsgs=ArrayNew(2)>
        <cfset allErrMsgs[1][1] = "firma">
        <cfset allErrMsgs[1][2] = #tx_validate_firma#>
        ...
        <cfset errMsgs = serializeJSON(allErrMsgs)>
        <cfreturn errMsgs>
    </cffunction>
</cfcomponent>  
这似乎是一个非常多的代码......