Проверьте, существует ли переменная в 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?

Возвращает:

логический

Аргументы:

Имя (обязательно) - Имя значения для проверки

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

Другие вопросы по тегам