MySQl / Laravel:在更新记录之前检查更改的列

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

我有一个表abc,其中包含多个字段。

我需要获取已更新的一列或多列(idcreated_atupdated_at除外,并将现有值和列名存储在与所选记录相对应的logs表中)在更新该表之前。

例如:表格:abc

id: 1
name: 'Old name'
mobile: 9876543210
address: 'Abc-123'
...
created_at: 'Sometime'
updated_at: 'Sometime'

update:
    name: 'new name'
    mobile: 1234567890

[表:日志应该具有

column | value
name   | Old name

column | value
mobile | 9876543210

但是,我可以将整个记录保存在表中,这会容易得多,但这只会浪费空间/内存。另外,如果没有任何算法,将很难确定在那个时间点哪个值被准确地更改过。

mysql laravel logging enter
1个回答
0
投票

isDirty()方法用于检查模型或任何给定属性是否已被修改。

如果名称被阻塞,它将返回true:$model->isDirty('name')

您也可以使用getOriginal()方法获得旧值

Ex  : $old_name = $model->getOriginal('name');
© www.soinside.com 2019 - 2024. All rights reserved.