目前我有可修改的特徵正確地存儲和提取模型的歷史經歷變化。如何獲取可修改軟件包中最新的一組更改?
模型的每次更新都會爲每個已更改的字段創建記錄。
是否可以通過更改對這些記錄進行分組?
實施例時間:
回合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] |
+----------+--------+-----+-----------+-----------+--------------+
回合2
$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
日期取和分組,然後簡單地取最後一組(最近的日期)。但是,我不知道是否有保證日期是相同的。
當從可修訂版本中檢索歷史記錄時,是否有方法通過更新進行分組?
編輯
經順藤摸瓜 - revisionable created_at日期使用內置的->withTimestamps()
特質。對於批處理插入中的每個插入(如一個可修改用途),新鮮時間戳將作爲Carbon日期獲取,這意味着(根據我的理解)批處理插入可能具有不同的created_at日期。
小心解釋downvote? – Chris