检查Model-Glue中是否存在变量

时间:2012-09-10 19:42:45

标签: coldfusion model-glue

如何确定Model-Glue II中是否存在变量?我通过表单提交传递了一个复选框(值= 1)。这在Controller.cfc中完成,该方法适用于已提交的其他变量。

测试A:

<cfif IsDefined("arguments.event.getValue('foobar')")>

</cfif>

错误:函数IsDefined的参数1,现在是arguments.event.getValue('foobar'),必须是语法上有效的变量名。

测试B(假设M.G.隐式创建具有空白/ NULL值的变量):

<cfset foo = arguments.event.getValue('foobar') />
<cfif IsNumeric(foo) AND foo GT 0>
  // Code here
</cfif>

错误:在ARGUMENTS中未定义元素FOO。

2 个答案:

答案 0 :(得分:2)

  

ValueExists(name:string)

     

说明:

     

视图状态中是否存在给定名称的值?

     

<强>返回:

     

布尔

     

<强>参数:

     

名称(必填) - 要检查的值的名称

http://docs.model-glue.com/wiki/ReferenceMaterials/EventApi#ValueExistsname:string

答案 1 :(得分:0)

根据MG Docs getValue()应返回“any”。我猜这意味着当一些简单的东西不存在时它会返回void。

但是,它确实有一个可选的第二个参数来设置默认值。所以你可以这样做:

<cfset foo = arguments.event.getValue('foobar', -1) />
<cfif IsNumeric(foo) AND foo GT 0>
    // Code here
</cfif>

如果您使用的是CF9,您还可以尝试使用isNull()函数。但我不知道它是否适用于这种情况。