Laravel - 如何获取某些属性/字段已更改为某个值的日期?

时间:2017-11-27 17:19:25

标签: php laravel laravel-5.2 laravel-5.5

例如我有桌子

orders 

和模型

Order

订单具有属性状态。初始状态为“购物车”,但第二个状态是“已订购”,在该状态经过“处理”之后,在该状态ID“已交付”之后#39;#39;'           之后,状态被取消'或完成。我可能会有超过10种状态。

是否有更好的解决方案,而不是为每个状态创建日期时间属性/字段:

cart_at
ordered_at
processed_at
....

然后在更改后保存每个状态的日期时间?

我想要一个包我可以做的事情:

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

2 个答案:

答案 0 :(得分:4)

您可以拥有一个表名order_events日志,其中包含以下字段的订单:

id
order_id
event_type_id
details
created_at

答案 1 :(得分:0)

您可以使用VentureCraft /可修订软件包跟踪模型属性的所有更改,然后使用可修订的升级包https://github.com/fico7489/laravel-revisionable-upgrade获取状态更新的日期:

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