【发布时间】:2015-07-17 10:29:01
【问题描述】:
我盯着http://doctrine-dbal.readthedocs.org/en/latest/reference/data-retrieval-and-manipulation.html#insert
我希望能够做类似的事情
$db->insert('mytable', [
'foo' => 'bar',
'created_on' => new MagicThatMakesNowWork()
]);
这不可能吗?我见过的最好的解决方案是使用 PHP 在设置时区的同时获取日期时间,这不太理想。由于某种原因,似乎只有 ORM 或查询构建器可以处理表达式。我知道在 Zend 中我可以执行类似 new Zend_Db_Expr('NOW()') 的操作,并且它通过对象类型知道不要在构建的查询中引用 NOW()。无需查询构建器或 ORM。
不确定这是不可能的还是没有很好的记录。 Doctrine DBAL: Updating timestamp field with 'NOW()' value 上的第二个答案在 types 数组中显示了一个随机字符串 datetime,这看起来也很奇怪/不好。
【问题讨论】:
-
如果你把
CURRENT_TIMESTAMP()放在那里呢? -
你应该试试 Doctrine TimeStampable...github.com/l3pp4rd/DoctrineExtensions/blob/master/doc/…
-
@zerkms 我也尝试过,但没有运气。我看到了一些认为可行的地方。
-
@Jean 看起来需要 ORM?
-
嗯,也许吧,我在 Symfony 项目中使用它,所以我有完整的 Doctrine 包
标签: mysql doctrine-orm