yii2验证相关模型

时间:2017-10-18 16:09:16

标签: yii2 yii2-validation

我们有2个型号:

  • 订单
  • OrderItems

因此,在保存相关的OrderItem时,我需要检查父订单中的一些属性。

订单具有以下属性:" time_begin"和" time_end"和OrderItem有自己的" time_begin"和" time_end"。因此,规则是OrderItem的时间必须在父订单的时间之间。

例如,我有以下情况:

  • 用户更改" time_end"秩序的更大价值和改变" time_end" OrderItem的价值也更大
  • 尝试保存所有相关数据(订单及其所有商品)
  • 订单验证成功通过
  • 但是当OrderItem尝试验证其" time_end"时,它会使用Order-> time_end属性的旧值并给出验证错误!!!

任何解决方案??? 如何让OrderItem知道Order已经改变了?

1 个答案:

答案 0 :(得分:0)

这是一个复杂的问题,您可以这样考虑: - 不要同时调用Order :: validate()和OrderItems :: validate()。 - Order :: validate() - > Order :: save()首先是OrderItems :: validate() - > OrderItems :: save()(这是失败的,记得在需要时还原订单)