gpt4 book ai didi

php - Laravel 对象数据被覆盖了吗?

转载 作者:行者123 更新时间:2023-11-29 00:25:23 24 4
gpt4 key购买 nike

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

我有一个 Controller 操作,用于处理此模型中对象的编辑/更新。运行此操作时,每次更改 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指向相关 Controller 操作副本的链接。我将再次指出,在整个操作过程中都有 echo 语句,我用它来验证输入数据是否正确,并且在整个操作过程中没有以任何意外的方式被更改。我遇到的问题仅在操作运行后出现。

最佳答案

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

发出 SHOW CREATE TABLE yourtablename 可以确认。

关于php - Laravel 对象数据被覆盖了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19170684/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com