Laravel对象数据被覆盖?

时间:2013-10-03 23:15:14

标签: php mysql datetime eloquent laravel-3

我有一个在Laravel 3中构建的应用程序,我遇到了一个非常奇怪的错误。我有一个包含两个日期时间字段的模型:start_timeend_time。我还为此模型启用了时间戳,因此还有created_atupdated_at个日期时间字段。

我有一个控制器动作,用于处理此模型中对象的编辑/更新。运行此操作时,每隔一次更改end_time字段,start_time字段就会被updated_at字段的分钟和秒覆盖。我知道这听起来很疯狂,但这是我在调试时所做的一些事情。

首先,我使用fill_raw($input)功能切换,并开始使用手动分配,以防万一有奇怪的事情发生。

    $object->start_time = $start_time;
    $object->end_time = $end_time;
    $object->save();

我还在整个操作过程中添加了echo个语句,以确保在任何时候都没有更改值,包括在save()函数之后打印存储在对象中的值的值叫做。每次价值都符合预期。但是,在重定向页面的操作结束和页面重新加载之间的某个时间点,数据库中的值将被更改。

此时我认为它在数据库端必定是奇怪的,因为我知道,例如在PHPMyAdmin中,当您手动添加行时,它会自动填充日期时间字段NOW '设置为NOT NULL但没有填写。但话虽如此,我已经仔细检查过该字段不是空的,因为它具有正确的值。我在这里走到了尽头,真的可以用另一种观点。

编辑:
Here's指向相关控制器操作副本的链接。我再次指出,整个操作中都有echo个语句,我用它来验证输入数据是否正确,并且在整个操作过程中不会以任何意外方式进行更改。我遇到的问题仅在操作运行后才会出现。

1 个答案:

答案 0 :(得分:1)

更新为当前时间的列与具有ON UPDATE CURRENT_TIMESTAMP子句的列一致。

发出SHOW CREATE TABLE yourtablename可以确认。