You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Symfony 6 Maker Bundle命令行能否设置add_date默认值为CURRENT_TIMESTAMP?

Symfony 6 Maker Bundle 设置datetime字段默认值为CURRENT_TIMESTAMP

Maker Bundle在Symfony 6版本中,无法直接通过命令行参数为datetime类型字段设置CURRENT_TIMESTAMP默认值,必须手动修改实体类和迁移文件来实现。具体操作步骤如下:

  • 先用make:entity命令创建字段,将add_date设为datetime类型,暂时不配置默认值。
  • 修改实体类的对应属性,在#[ORM\Column]注解中添加数据库层面的默认值配置:
    #[ORM\Column(type: 'datetime', options: ['default' => 'CURRENT_TIMESTAMP'])]
    private ?\DateTimeInterface $addDate = null;
    
    若使用MySQL且字段不允许为空,可补充nullable: false参数。
  • 生成并执行迁移:运行make:migration生成迁移文件,打开文件确认addColumn部分包含default: 'CURRENT_TIMESTAMP'后,执行doctrine:migrations:migrate完成数据库更新。

另外,也可以在应用层面实现自动赋值——在实体的构造函数中初始化字段:

public function __construct()
{
    $this->addDate = new \DateTimeImmutable();
}

这种方式是在对象创建时直接设置当前时间,和数据库默认值的作用场景略有不同,可根据需求选择。

内容的提问来源于stack exchange,提问作者Asrorbek Sultanov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 15:17:11