如何在阿多尼斯模型中给予一个默认值,我正在使用Adonis Typescript

li9yvcax  于 2023-10-22  发布在  TypeScript
关注(0)|答案(2)|浏览(151)

在这里,我使用的是node.js的adonis框架,它使用了自己的lucid框架。我卡住了如何给给予一个默认值在这里的日期i使用一个默认日期字段在代码中。我想存储一个当前日期在YYYY-MM-DD格式

import { DateTime } from 'luxon'
import { BaseModel, BelongsTo, belongsTo, column } from '@ioc:Adonis/Lucid/Orm'
import User from './User'

export default class Post extends BaseModel {
  @column({ isPrimary: true })
  public id: number

  @column()
  public title: string

  @column()
  public description: string | null

  @column()
  public publishedDate: Date

  @column()
  public userId: number

  @column.dateTime({ autoCreate: true })
  public createdAt: DateTime

  @column.dateTime({ autoCreate: true, autoUpdate: true })
  public updatedAt: DateTime

  @belongsTo(() => User, {
    foreignKey: 'userId',
  })
  public posts: BelongsTo<typeof User>
}
5lwkijsr

5lwkijsr1#

您可以在表迁移中分配默认值,例如

table.date('published_date').defaultTo(#YOUR DATE#)

但是,我不确定是否可以以YYYY-MM-DD格式存储它。你可以玩一玩,看看它是否有效。如果它不起作用,那么你必须将你的日期存储为ISO日期时间字符串,并使用@computed装饰器来格式化你的日期。
https://docs.adonisjs.com/reference/orm/decorators#computed

jyztefdp

jyztefdp2#

我试过了,它对我很有效

table.timestamp('created_at', { useTz: true }).defaultTo(this.now())
table.timestamp('updated_at', { useTz: true }).defaultTo(this.now())

相关问题