src/objects/post-card.object.ts
关键点
universalIdentifier必须在各次部署间保持唯一且稳定。- 每个字段都需要
name、type、label以及其自身稳定的universalIdentifier。 fields数组是可选的——你可以定义没有自定义字段的对象。- 此处定义的内联字段不需要
objectUniversalIdentifier——它会从父对象继承。 使用defineField()为你不拥有的对象添加字段。 - 你可以使用
yarn twenty dev:add object脚手架创建新对象,它会引导你完成命名、字段和关系。 参见 Architecture → Scaffolding entities。
基础字段会自动添加。 当你定义自定义对象时,Twenty 会为你创建标准字段,例如
id、name、createdAt、updatedAt、createdBy、updatedBy 和 deletedAt。 你无需在 fields 数组中声明这些字段——只需声明你的自定义字段。 你可以通过声明一个同名字段来覆盖默认字段,但这么做通常并不是一个好主意。默认值
字面量字符串默认值必须在字符串内部用单引号包裹——应写成defaultValue: "'Draft'",而不是 defaultValue: "Draft"。 这就是上面的 status 字段使用 `'${PostCardStatus.DRAFT}'` 的原因。
未加引号的字符串保留用于计算得到的默认值,这些默认值会在创建记录时进行求值:
'uuid'— 生成一个 UUID(用于UUID字段)'now'— 当前时间戳(用于DATE_TIME字段)
ACTOR 字段上的 { source: "'MANUAL'" })以及 SELECT/MULTI_SELECT 值。 在构建应用时,未加引号的字面字符串默认值会触发警告。
接下来
- 将此对象与其他对象关联——关于双向关系模式,参见 Relations。
- 为其他应用的对象添加字段——关于
defineField(),参见 Extending Objects。 - 在 UI 中展示此对象——参见 Views 和 Navigation Menu Items,将其放入侧边栏。