目前,我具有正确存储和获取模型历史的可修订特征,经历了变化。
对模型的每次更新都会为每个更改的字段创建一条记录。
是否可以通过更改对这些记录进行分组?
示例时间:
第1轮
$model = MyModel::find(1);
$model->a = 5;
$model->b = 6;
$model->save();
这导致以下条目
+----------+--------+-----+-----------+-----------+--------------+
| rev_type | rev_id | key | old_value | new_value | created_at |
+----------+--------+-----+-----------+-----------+--------------+
| MyModel | 1 | a | 0 | 5 | [first date] |
| MyModel | 1 | b | 0 | 6 | [first date] |
+----------+--------+-----+-----------+-----------+--------------+
第二轮
$model = MyModel::find(1);
$model->a = 555;
$model->b = 666;
$model->save();
这导致以下条目
+----------+--------+-----+-----------+-----------+---------------+
| rev_type | rev_id | key | old_value | new_value | created_at |
+----------+--------+-----+-----------+-----------+---------------+
| MyModel | 1 | a | 0 | 5 | [first date] |
| MyModel | 1 | b | 0 | 6 | [first date] |
| MyModel | 1 | a | 5 | 555 | [second date] |
| MyModel | 1 | b | 6 | 666 | [second date] |
+----------+--------+-----+-----------+-----------+---------------+
在这种情况下,我只想获取记录 3 和 4。
最初的想法包括按created_at
日期获取和分组,然后简单地获取最后一组(最近的日期)。但是我不知道是否可以保证日期相同。
从可修订的历史中检索历史时,有没有办法按更新分组?
编辑
经过更深入的调查 - 可修改的 created_at 日期正在使用内置->withTimestamps()
特征。对于批量插入中的每个插入(如可修改的使用),一个新的时间戳被抓取为碳日期,这意味着(根据我的理解)批量插入可能具有不同的 created_at 日期。