我有一个简单的 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,而值为旧值。
终于找到了——字段firstname在ressource表单中定义了两次