Laravel Framework에서 사용자 지정 모델 버전 관리를 구현했습니다. 데이터베이스 테이블에서 처리하는 열 몇 가지가 있습니다 : sibling_id
(모델의 다른 버전을 함께 연결), version
, accepted
및 validFrom
입니다. 예를 들어Laravel 현재 버전의 모델 만 가져 오기
: 나는 현재의 모델로 무엇을 의미
| 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()
함수와 같은 방식으로 작동해야하므로 원하는 경우 모두 포함시킬 수 있습니다 (예 : 버전 기록).
어쩌면 범위를 사용하여이 작업을 수행 할 수 있지만 "형제 그룹화"및 다른 복잡한 필터로 인해 복잡하다고 느꼈으므로 여기에서 질문했습니다.
미리 감사드립니다.