0

我有一个有四列的数据库id, languageid, name,text

根据用户的默认语言,我创建了一个包含设置语言的所有文本的查询 ( where languageid=#user.defaultlanguageid#)

在显示所需的字符串时,检索这些最简单的方法是什么。

似乎每次创建一个子查询都需要做很多工作。

创建一个函数是最好的方法吗?

4

1 回答 1

3

您可以只使用一个查询来填充一个结构(可能是一个应用程序级结构)——如下所示:

<cfif not IsDefined("application.langMap")>

<cfquery name="langNames" datasource="...">SELECT * from langTable</cfquery>

<cfset application.langMap = {}>
<cfloop query="langNames">
   <cfif not StructKeyExists(application.langMap, languageid)>
       <cfset application.langMap[languageid] = {}>
   </cfif>
   <cfset application.langMap[languageid][name] = text>
</cfloop>

</cfif>

然后当您需要显示中的特定字符串时:

#application.langMap[mylanguageid][name]#
于 2011-11-22T00:36:55.113 回答