Codeigniter Datamapper自动创建更新字段

问题描述:

看起来像这样应该是很容易的部分,但我似乎无法得到这个去。我的createdupdated字段未被填充。我尝试将字段重命名为不同的东西,但不行。除了架构和设置类(非常基本)如下,我错过了什么?Codeigniter Datamapper自动创建更新字段

笨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 

用户类别:

<?php 

class User extends DataMapper 
{ 

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

} 
+0

好吧,有趣的东西。我允许NULL为'created'和'updated'列。当我创建一个新用户'created'被设置为'0000-00-00 00:00:00'并且'updated'为NULL时。所以它似乎设置了'created'列,但是我需要在某处编辑时间配置吗? – csm232s 2012-07-18 15:41:11

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

$config['local_time'] = TRUE; 
$config['unix_timestamp'] = FALSE; 
$config['timestamp_format'] = 'Y-m-d H:i:s'; 
+2

默认情况下,Datamapper配置为使用整数表示时间戳,并存储UNIX时间戳,这比MYSQL日期时间字段更有效。 – WanWizard 2012-08-13 16:23:45

+3

但用户文档说'注意:默认情况下,创建和更新字段是DateTime类型,并且使用GMT/UTC时间。' (http://datamapper.wanwizard.eu/pages/timestamp.html 2013/04/23访问) – jx12345 2013-04-23 14:16:55

+0

@WanWizard:更新和创建的字段必须允许为零。我对吗?并且这个库在创建模型时不在更新字段。不是更新后的字段与创建数据库时创建的模型相同。这是图书馆的预期行为吗? – MadNik 2015-02-17 03:17:29

在你的config/datamapper.php文件确保“created_field '和'updated_field'被设置为与您的数据库列匹配。或者你可以在模型中覆盖它们。即。

<?php 

class User extends DataMapper 
{ 
    var $created_field = 'created'; 
    var $updated_field = 'updated'; 

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

}