【发布时间】:2018-06-10 02:06:36
【问题描述】:
我已经在 Laravel 框架中实现了自定义模型版本控制。数据库表中有几列处理它:sibling_id(将模型的不同版本链接在一起)、version、accepted 和 validFrom。
例如:
| id | sibling_id | version | accepted | validFrom | ... |
|----|------------|---------|----------|------------|-----|
| 1 | 1 | 1 | 1 | 2017-12-01 | |
| 2 | 1 | 2 | 1 | 2018-06-01 | |
| 3 | 2 | 1 | 1 | 2017-12-10 | |
| 4 | 2 | 2 | 0 | 2017-12-28 | |
| 5 | 3 | 1 | 0 | 2017-12-01 | |
我对当前模型的意思:
- 在可接受和有效的模态中具有最大版本号的模型
- 或版本 1(如果没有其他版本)
我想有一些方法通常只获取按sibling_id 分组的当前模型(因此在此示例中,集合应包括模型 1、3 和 5)。这应该与 Laravel 的 withTrashed() 函数的工作方式相同,因此我可以根据需要包含所有内容(例如版本历史记录)。
也许这可以通过范围以某种方式完成,但由于“兄弟分组”和另一个复杂的过滤器,我觉得它很复杂,所以我最终在这里问。
提前致谢。
【问题讨论】:
标签: php sql laravel laravel-5 laravel-5.5