2017-11-27 7 views
0

나는 테이블을Laravel - 일부 속성/필드가 일부 값으로 변경된 날짜를 얻는 방법? 예를 들어

orders 

을 가지고

Order 

위해 상태 속성이 모델. 초기 상태는 '장바구니'이지만 두 번째 상태는 '주문 됨'이며, 상태가 '처리 완료'되고, 상태 ID가 '납품'인 상태가 '취소됨'또는 완료된 후에 '주문 됨'입니다. 나는 아마도 10 가지 이상의 상태를 가질 것이다.

cart_at 
ordered_at 
processed_at 
.... 

다음 각 상태에 대한 날짜를 저장 한 후 변경 :

는 오히려 각 상태에 대한 날짜 속성/필드를 만드는 것보다 더 나은 솔루션이 있습니까?

는 내가 같은 것을 할 수있는 패키지를 원하는 : 당신은 테이블 이름이 거기에 로그를 order_events 수 있습니다

echo 'Order is cancelled at '. $order->getDateFor('status', 'canceled'); 
+1

[VentureCraft/revisionable] (https://github.com/VentureCraft/revisionable) 패키지가 도움이 될 수도 있습니다. – Camilo

+0

@Camilo 예, 나는 리비전을 확장하고 많은 유용한 메소드를 제공하는 패키지를 만들었습니다 ... 아래 내 대답을보십시오 ... – fico7489

답변

4

무엇 다음 필드로 주문이 벌어지고 :

id 
order_id 
event_type_id 
details 
created_at 
0

VentureCraft/revisionable 패키지를 사용하여 모델 속성에 대한 모든 변경 사항을 추적 한 다음 버전 업그레이드 패키지 https://github.com/fico7489/laravel-revisionable-upgrade을 사용하여 상태가 업데이트 된 날짜를 얻을 수 있습니다.

echo 'order is updated to status "canceled" at ' . $order->dateUpdated('status', 'canceled');