动态属性默认为CF9 ORM

时间:2010-08-16 14:12:07

标签: orm coldfusion

如何在CF9 ORM对象上设置动态属性默认值?

例如,我知道我可以像这样设置属性默认值:

property name="isActive" default="1";

但是如果你想拥有一个动态生成的默认值,比如日期或UUID呢?

property name="uuid" default="#createUUID()#";

...抛出错误 - 那么解决方法是什么?

2 个答案:

答案 0 :(得分:1)

创建Entity对象时,将调用对象构造函数。这是运行“设置”代码的好地方。

User.cfc

component persistent="true"
{
  property name="id" fieldtype="id" generator="native";
  property name="secretKey";

  public User function init() {
     if (isNull(variables.secretKey))
         setSecretKey(createdUUID());

     return this;
  }
}

答案 1 :(得分:0)

你有没有试过重载吸气剂?

public string function getUUID() {if(variables.UUID EQ ""){ return createUUID(); } else { return variables.firstName; }; }

我无法从我所处的地方测试,但我会尝试。