gpt4 book ai didi

mysql - 时间戳字段只能通过 Yii 中的行为更新

转载 作者:行者123 更新时间:2023-12-01 00:10:22 25 4
gpt4 key购买 nike

在我的模型中,我在 safe 验证器中定义了一个名为 timestamp 的字段(MySQL 类型:timestamp),但我无法手动写。每次我打电话:

$model->timestmap = time();
$model->save();

模型已保存(创建/更新行),也就是说——它通过了验证且没有错误,但是 timestamp 字段填充了默认值 0000-00-00 00:00 :00(我决定删除默认的 on update CURRENT_TIMESTAMP 属性,我不想让 MySQL 处理这个)。

但是,当我删除上面的代码并附加 CTimestampBehavior 时相反,字段在更新和创建时都被正确的值填充,没有任何问题。

可能发生了什么或者我错过了什么?当我的手动尝试失败时,行为如何毫无问题地更新字段?这是因为列类型是 timestamp,而不是 datetimeint 吗?

我总是被告知,第一个线索,为什么某些属性没有被保存,是因为它没有列在 safe 验证器列表中,或者因为它列在 unsafe 验证者列表。但这一个列在 safe 列表中。

最佳答案

您的数据库字段是 datetime字段(我假设,查看你的默认值),但你用 unix timestamp 填充它.试试 CDbExpression相反:

$model->timestamp = new CDbExpression('NOW()');
$model->save();

关于mysql - 时间戳字段只能通过 Yii 中的行为更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22864309/

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