Я смотрю на защиту низкоуровневого объекта в моей модели (объект-член), поэтому по умолчанию из него можно получить доступ только к определенной информации.
Вот возможный подход (чертовски сексуально, если это сработает!):
1) Добавьте свойство с именем «locked» - по умолчанию «true» к самому объекту.
Похоже, что единственный способ сделать это, а не привязать его к столбцу таблицы БД, - это использовать атрибут формулы, который принимает запрос. Таким образом, по умолчанию заблокирован на TRUE, я получил:
<cfproperty name="locked" formula="select 1" />
2) Затем я перезаписываю существующие установщики и получатели, чтобы использовать это:
например
<cffunction name="getFullname" returnType="string">
<cfscript>
if (this.getLocked()) {
return this.getScreenName();
} else {
return this.getFullname();
}
</cfscript>
</cffunction>
3) Когда я использую это так:
<p> #oMember.getFullName()# </p>
показывает ScreenName (отлично!)
но ... Когда я делаю это:
<cfset oMember.setLocked(false)>
<p> #oMember.getFullName()# </p>
Просто зависает !!! Похоже, что попытка установить свойство, определенное с помощью «формулы», - это нет-нет.
Есть идеи? Любой другой способ, которым мы могли бы иметь свойства, прикрепленные к объекту ORM, которые можно получить и установить без их присутствия в БД?
Идеи приветствуются!