Symfony1 Symfony条令可版本行为忽略字段
我的模式中有一个可版本化的表。例如,我不希望在更改状态时对其进行版本控制,而是希望在更改shippingPrice时对其进行版本控制Symfony1 Symfony条令可版本行为忽略字段,symfony1,doctrine,behavior,Symfony1,Doctrine,Behavior,我的模式中有一个可版本化的表。例如,我不希望在更改状态时对其进行版本控制,而是希望在更改shippingPrice时对其进行版本控制 MyOrder: actAs: Timestampable: Versionable: versionColumn: version className: %CLASS%Version auditLog: true columns: userId: { type: intege
MyOrder:
actAs:
Timestampable:
Versionable:
versionColumn: version
className: %CLASS%Version
auditLog: true
columns:
userId: { type: integer, notnull: true }
status: {type: enum, values: ["status1", "status2"]}
shippingPrice: { type: float, notnull: true }
#more columns
我该怎么做呢?这篇文章可能会引起一些兴趣:
作者希望用Versionable嵌套I18N功能。问题略有不同,但他提出的解决方案可能有用
本质上,他推出了自己的版本。这不是最令人愉快的前景,但看看他是如何实现它的,这可能会为您自己节省一些时间。这有点老套,但我认为应该做需要做的事情 我还没有测试过它,但我的理解是,如果执行dql update(),则不会触发Versionable 像这样
$result = $this->createQuery()
->update('MyOrder m')
->set('m.status', $var)
->execute();
但是,如果检索对象,请对其进行更改并保存:
$m = MyOrderTable::getInstance()->findOneById($id);
$m->setShippingPrice($price);
$m->save();
然后将触发Versionable,因此您应该获得一个新版本
所以你可以用这个来解决这个问题