Laravel isDirty 虽然值已更改但返回 false

问题描述 投票:0回答:1

我有一个简单的 laravel 11 应用程序,有一个带有多个字段的 mysql 表,包括名字和姓氏(相同的 varchar 50)。 它们在 protected $fillable 中定义,我有一个 Updated_at 列。

当我编辑姓氏时,当我点击“保存”时,它会在数据库中正确更新。 当我编辑名字时,当我点击“保存”时,更改不会被保存。

保存方法显示:

static::saving(function ($model) {
foreach ($model->attributes as $key => $value) {
                if ($model->isDirty($key)) {
                    $original = $model->getOriginal($key);
                    Log::info('IS DIRTY - YES - ' . $key . ' -- original: *' . ($original ?? 'null') . '*');
                } else {
                    Log::info('IS DIRTY - NO - ' . $key . ' -- original: *' . ($original ?? 'null') . '*');
                }
}

我真的不明白为什么该值没有更新。

我使用 laravel 11.35 和 php 8.4

感谢您的帮助 当我编辑名字时,is dirty 为 False,原始值为 null,而值为旧值。

eloquent laravel-11 php-8.4
1个回答
0
投票

终于找到了——字段firstname在ressource表单中定义了两次

© www.soinside.com 2019 - 2024. All rights reserved.