【发布时间】:2011-04-18 21:36:10
【问题描述】:
直接在INSERT 或UPDATE 上提交当前时间戳的方法是什么?如果我正在运行常规 SQL,我会在提交时使用函数 NOW() 来处理特定的 SQL 字段。我将如何使用 CakePHP 做到这一点?
$this->Model->save($this->data)
【问题讨论】:
标签: php cakephp cakephp-1.3
直接在INSERT 或UPDATE 上提交当前时间戳的方法是什么?如果我正在运行常规 SQL,我会在提交时使用函数 NOW() 来处理特定的 SQL 字段。我将如何使用 CakePHP 做到这一点?
$this->Model->save($this->data)
【问题讨论】:
标签: php cakephp cakephp-1.3
您可以将时间戳字段设置为自动初始化和自动更新
timestampfield TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
【讨论】:
在 CakePHP 中,您可以通过使用 DboSource::expression 来包含未转义的 NOW() 函数
$this->data['SomeModel']['your_datetime_field'] = DboSource::expression('NOW()');
$this->Model->save($this->data);
这是在保存中包含 MySQL 函数的首选方式。
【讨论】:
created 和 updated 的字段,cakephp 将分别在 INSERT 和 UPDATE 语句上自动更新它们。不过,我更喜欢手动添加元素。
created和modified
如果您在表中添加创建和修改的列,它们将自动填充当前时间戳。如果情况不同 - 即您要填充稍后要修改的字段,则最好使用 edorian 的解决方案。
【讨论】: