仍在学习ColdFusion的最佳实践并遇到了一个我认为我可以做得更好的实践
我正在运行CF10,并且基本上有一个流程,用户填写20列的电子表格,不需要5列。在不需要的5个中,2个(blah1和blah2)不需要填写数据,如果没有填写数据,则它将被插入为NULL。
最终和单独的进程基本上是读取表中每列的字段,如果它看到2(blah1和blah2列)的NULL,那么它将被设置为默认值,但如果它确实看到任何值,那么它将使用输入的值作为值。
这就是我所拥有的:
<cfif Len(blah1)>
<cfset blah1 = "#default1#" />
<cfelse>
<cfset blah1 = "default1" />
</cfif>
<cfif Len(blah2)>
<cfset blah2 = "#default2#" />
<cfelse>
<cfset blah2 = "default2" />
</cfif>
使用Len()检查是否在表格的字段中填充了任何数据?
答案 0 :(得分:5)
如果您不想在数据库中执行检查,那么是,len()
是最好的方法。如果用户有可能只输入空格,请选中len(trim())
由于您使用的是CF10,您可以使用三元运算符编写代码以简化操作
<cfset blah1 = len(qryName.blah1) ? qryName.default1: 'default1'>
您希望在变量成为变量范围的一部分时对其进行调整范围,因此请将blah1
作为queryName的前缀,如果它来自的话。另外,在设置变量时您不需要使用"##"
,您只需设置变量即可。如果不使用三元运算符,您只需要
<cfif Len(qryName.blah1)>
<cfset blah1 = qryName.default1 />
<cfelse>
<cfset blah1 = "default1" />
</cfif>