Проверьте, существует ли переменная в Model-Glue
Как я могу определить, существует ли переменная в Model-Glue II? Я передаю флажок (значение = 1) через отправку формы. Это делается в Controller.cfc в методе, который уже работает для других передаваемых переменных.
Тест А:
<cfif IsDefined("arguments.event.getValue('foobar')")>
</cfif>
Ошибка: параметр 1 функции IsDefined, который теперь является arguments.event.getValue('foobar'), должен быть синтаксически допустимым именем переменной.
Тест B (при условии, что MG неявно создает переменную с пустым значением / значением NULL):
<cfset foo = arguments.event.getValue('foobar') />
<cfif IsNumeric(foo) AND foo GT 0>
// Code here
</cfif>
Ошибка: Элемент FOO не определен в аргументах.
2 ответа
Согласно MG Docs getValue () должен возвращать "любой". Я предполагаю, что это означает, что когда чего-то простого не существует, оно возвращает пустоту.
Тем не менее, он имеет необязательный второй параметр для установки по умолчанию. Так что вы можете сделать это:
<cfset foo = arguments.event.getValue('foobar', -1) />
<cfif IsNumeric(foo) AND foo GT 0>
// Code here
</cfif>
Если вы используете CF9, вы также можете попробовать использовать функцию isNull(). Но я не знаю, будет ли это работать в этой ситуации.
ValueExists(name:string)
Описание:
Существует ли значение данного имени в viewstate?
Возвращает:
логический
Аргументы:
Имя (обязательно) - Имя значения для проверки