Orm CF9表单中的动态属性默认值

Orm CF9表单中的动态属性默认值,orm,coldfusion,Orm,Coldfusion,如何在CF9 ORM对象上设置动态属性默认值 例如,我知道我可以像这样设置属性默认值: property name="isActive" default="1"; 但是,如果您想要动态生成默认值,例如日期或UUID,该怎么办 property name="uuid" default="#createUUID()#"; …抛出一个错误-那么解决方法是什么呢?您是否尝试过重载getter public string function getUUID() {if(variables.UUID EQ

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

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

property name="isActive" default="1";
但是,如果您想要动态生成默认值,例如日期或UUID,该怎么办

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

…抛出一个错误-那么解决方法是什么呢?

您是否尝试过重载getter

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

我无法从现在的位置测试,但我会尝试。

您是否尝试过重载getter

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

我无法从我现在的位置进行测试,但我会尝试。

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

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;
  }
}

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

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;
  }
}

Dan,我认为他需要将其作为默认值,并且不总是返回新的UUID。如果UUID已经存在于数据库中怎么办?Dan,我认为他需要它是默认的,并且不总是返回新的UUID。如果UUID已经存在于数据库中怎么办?这对新实体很好,但会被从数据库加载的任何内容覆盖(即使它是空值)。但是,由于我是从头开始构建这个应用程序的,没有遗留数据,因此我可以确保用户数据库中的每个条目都将使用此默认值创建。(在上面的代码中,init()函数需要在末尾添加“returnthis;”。)谢谢,如果您只想为新实体运行此代码,您可以始终检查实体的id if(isNull(getId()){}另一种方法是为Henry关于使用orm事件处理程序的建议分配uuid@preInsertLinkcfchttp://www.danvega.org/blog/index.cfm/2009/12/22/ColdFusion-9-ORM-Event-Handlers-Use-CaseThis 适用于新实体,但会被从数据库加载的任何内容覆盖(即使是空值)。但是,由于我从头开始构建此应用程序,没有遗留数据,因此我可以确保用户数据库中的每个条目都将使用此默认值创建。(在上面的代码中,init()函数需要在末尾添加“return this;”。)谢谢,如果您只想为一个新实体运行此代码,您可以始终检查实体的id if(isNull(getId()){}。另一种方法是为Henry建议的使用orm事件处理程序分配uuid@preInsertLinkcfchttp://www.danvega.org/blog/index.cfm/2009/12/22/ColdFusion-9-ORM-Event-Handlers-Use-Case