Bet*_*ide 7 mysql timestamp doctrine-orm
我正在寻找一种使用TIMESTAMP而不是DATETIMEMySql 来制作学说的方法.
另外我需要设置ON UPDATE CURRENT_TIMESTAMP和CURRENT_TIMESTAMP默认值.
我希望有可能在PHP注释中包含所有这些代码,将所有内容放在一个中心位置.
我怎样才能做到这一点?
Dav*_*san 19
经过几个小时的搜索,我找到了答案,我希望这可以帮助其他人寻找比实体生命周期和WRONG列类型更令人满意的解决方案(因为a TIMESTAMP是一种特定类型,除了存储datetime值之外还有特定的行为)
您需要做的就是添加
* @ORM\Column(type="datetime", nullable=false)
* @ORM\Version
Run Code Online (Sandbox Code Playgroud)
对您的注释和Doctrine都将创建一个TIMESTAMP列,DEFAULT CURRENT_TIMESTAMP然后将实际的表值作为有效\DateTime对象返回.
不存在像TIMESTAMP在 mysql 中使用 Doctrine 这样的东西。但是,我自己修复了它,但必须测试它:
Doctrine\DBAL\Types\TimestampType.phpTimeType.php到TimestampType.phpDoctrine\DBAL\Types\Type.phpgetTimestampTypeDeclarationSQL函数Doctrine\DBAL\Platforms\AbstractPlatform.phpTIMESTAMP我曾经yaml创建过实体和代理,因此使用yaml:
type: timestamp
Run Code Online (Sandbox Code Playgroud)
我现在要测试这个“修复”/“解决方法”。我会告诉你。