玩!框架 CRUD 模块:添加默认值和更改日期格式?

Posted

技术标签:

【中文标题】玩!框架 CRUD 模块:添加默认值和更改日期格式?【英文标题】:Play! framework CRUD module: adding default values and change date format? 【发布时间】:2011-05-16 22:16:06 【问题描述】:

我正在使用 Play! frameworks CRUD 模块,但我无法弄清楚:我的数据库表有一个 created 字段,它基本上是创建行的时间。我不想让我的用户设置这个,我想在后端做,只需添加当前时间。不过我不知道该怎么做。

我已经使用@Hidden 使该字段不可见,但显然现在我无法创建新行,因为它的值根本没有设置。那么我在哪里做呢?

还有一个问题:我的表还有一个名为publish 的列,这是另一个时间戳。 CRUD 表单中此字段的当前格式为 yyyy-MM-dd。我也想指定一个日期,但不知道如何..

有人可以帮忙吗?

【问题讨论】:

【参考方案1】:

您可以使用 javax.persistence.PrePersist 注解来设置创建日期。将此方法放入您的模型中:

@PrePersist
public void prePersist() 
    created = new Date();

【讨论】:

【参考方案2】:

您可以在 CRUD 模板中使用 custom field rendering 来显示格式化的值或使用您想要的任何控件(即:用于日期的 jquery 日期选择器)。

要隐藏一个值并分配一个默认值,首先通过删除字段从 CRUD 的编辑/空白表单中删除该值。然后覆盖实体中的 _save() 方法(注意初始 _,您需要 _save(),而不是 save())并在调用 super._save() 之前在代码中设置您想要的值。像这样:

/* Return value may differ */
public void _save() 
   current = new Date();
   super._save();

【讨论】:

我应该在哪个文件中使用#crud.custom,这是我必须从 cmd 生成的东西吗?

以上是关于玩!框架 CRUD 模块:添加默认值和更改日期格式?的主要内容,如果未能解决你的问题,请参考以下文章

更改 Rails 4 中的默认日期和时间格式

玩!框架,自定义 CRUD list() 函数

更改 ASP.NET Core 中 DateTime 解析的默认格式

如何更改excel中的默认日期格式

如何更改响应式表单中日期的格式?

更改 django 默认日期模板格式