У меня есть пользовательский объект, который я хотел бы иметь в переменной сеанса и иметь возможность обновлять по мере необходимости. Как мне вызвать функцию в существующем пользовательском объекте, которая будет манипулировать существующей переменной. Я нашел способ вызвать функцию, но она не вызывает существующий объект, вместо этого я подозреваю, что она создает экземпляр нового объекта перед вызовом функции.
В Application.cfc:
<cffunction name = "onSessionStart" output="no">
<cfobject name="session._user" component="user"/>
<cfscript>
...
session._user.init();
</cfscript>
</cffunction>
В User.cfc:
<cffunction name = "init">
<cfscript>
variables.attributes.variable1 = 0;
</cfscript>
</cffunction>
<cffunction name="changeVariable" access="public">
<cfargument name = "somename">
variables.attributes.variable1 = arguments.somename;
</cffunction>
Позже в login.cfm вызовите session._user.changeVariable(2)
Если это невозможно, я в конечном итоге буду писать в базу данных и из нее, чтобы отслеживать свойства пользователя, а не использовать переменную сеанса.