我在 Laravel 3 中构建了一个应用程序,但遇到了一个非常奇怪的错误。我有一个带有两个日期时间字段的模型:start_time
和end_time
. created_at
我还为此模型启用了时间戳,因此还有updated_at
datetime 字段。
我有一个控制器操作来处理此模型中对象的编辑/更新。运行此操作时,每隔一次更改该end_time
字段,该start_time
字段就会被该字段的分钟和秒覆盖updated_at
。我知道这听起来很疯狂,但这里有一些我在调试时所做的事情。
首先,我从使用该fill_raw($input)
功能切换并开始使用手动分配,以防发生一些奇怪的事情。
$object->start_time = $start_time; $object->end_time = $end_time; $对象->保存();
我还在echo
整个操作中添加了语句,以确保在任何时候都不会更改值,包括在save()
调用函数后打印存储在对象中的值的语句。每次值都符合预期。但是,在页面被重定向的操作结束和页面重新加载之间的某个时间,数据库中的值正在更改。
在这一点上,我认为这在数据库端一定很奇怪,因为我知道例如在 PHPMyAdmin 中,当您手动添加一行时,它会NOW
在设置为NOT NULL
但未填写时自动填充日期时间字段. 但是话虽如此,我已经仔细检查了该字段是否为空,因为它具有正确的值。我在这里陷入了死胡同,真的可以使用另一个视角。
编辑:
这是有问题的控制器操作副本的链接。我要再次指出,在echo
整个操作过程中,我使用了一些语句来验证输入数据是否正确,并且在整个操作过程中没有以任何意想不到的方式被更改。我遇到的问题仅在操作运行后出现。