我有一个表格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');
参考 : https://laravel.com/api/master/Illuminate/Database/Eloquent/Model.html#method_isDirty