Codeigniter Datamapper自动创建更新的字段

csm*_*32s 1 php codeigniter codeigniter-2 codeigniter-datamapper

看起来这应该是容易的部分,但我似乎无法实现这一目标.我createdupdated字段没有填充.我已经尝试将字段重命名为不同的字段,但没有去.除了架构和设置类(非常基本),如下所示,我错过了什么?

Codeigniter v2.1.2 Datamapper ORM v1.8.2.1

架构:

CREATE TABLE `users` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `username` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  `created` datetime NOT NULL,
  `updated` datetime NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1
Run Code Online (Sandbox Code Playgroud)

用户类:

<?php

class User extends DataMapper
{

    function User()
    {
        parent::DataMapper();
    }

}
Run Code Online (Sandbox Code Playgroud)

csm*_*32s 6

好的,找到答案,希望这会帮助别人.我需要在application/config/datamapper.php文件中设置以下内容:

$config['local_time'] = TRUE;
$config['unix_timestamp'] = FALSE;
$config['timestamp_format'] = 'Y-m-d H:i:s';
Run Code Online (Sandbox Code Playgroud)

  • 但用户文档说'注意:默认情况下,Created和Updated字段属于DateTime类型,并且使用GMT/UTC时间.(http://datamapper.wanwizard.eu/pages/timestamp.html访问2013/04/23) (3认同)
  • 默认情况下,Datamapper配置为使用整数作为时间戳,并存储UNIX时间戳,这比MYSQL datetime字段更有效. (2认同)