【发布时间】:2013-11-19 10:03:09
【问题描述】:
我正在使用 Sonata Admin 包为我的一个网站创建管理员。我有一个表格,它有很多字段。我有一个日期字段,我希望在保存表单时将其自动保存到数据库中。意味着我希望对用户隐藏日期字段,但应该保存日期。我怎样才能做到这一点..??我尝试过使用隐藏表单类型,但它没有用。请帮我。提前致谢
【问题讨论】:
标签: symfony sonata-admin
我正在使用 Sonata Admin 包为我的一个网站创建管理员。我有一个表格,它有很多字段。我有一个日期字段,我希望在保存表单时将其自动保存到数据库中。意味着我希望对用户隐藏日期字段,但应该保存日期。我怎样才能做到这一点..??我尝试过使用隐藏表单类型,但它没有用。请帮我。提前致谢
【问题讨论】:
标签: symfony sonata-admin
首先删除configureFormFields()函数中的datefield
您可以在管理类中使用 prePersist() 和 preUpdate() 方法
public function prePersist($data) {
$data->setDateField(date);
}
public function preUpdate($data) {
$data->setDateField(date);
}
在名为 startDate 的实体日期字段中。
因此,您可以在 prePersist() 或 preUpdate() 中将 setDateField() 更改为 setStartDate() >
【讨论】:
在 AdminClass 中,您可以使用 preUpdate() 和 prePersist() 方法设置日期值。
您还可以使用 StofDoctrineExtensionsBundle https://github.com/stof/StofDoctrineExtensionsBundle/blob/master/Resources/doc/index.rst 和 Timestampable Extension
Timestampable - 在创建、更新甚至更新日期字段 属性变化。
【讨论】: