我有一个表abc
,其中包含多个字段。
我需要获取已更新的一列或多列(id
,created_at
和updated_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
但是,我可以将整个记录保存在表中,这会容易得多,但这只会浪费空间/内存。另外,如果没有任何算法,将很难确定在那个时间点哪个值被准确地更改过。
isDirty()
方法用于检查模型或任何给定属性是否已被修改。
如果名称被阻塞,它将返回true:$model->isDirty('name')
您也可以使用getOriginal()
方法获得旧值
Ex : $old_name = $model->getOriginal('name');