marcj / optimistic-locking-behavior
该包最新版本(dev-master)没有可用的许可证信息。
允许您在 Propel 2 中使用乐观锁的行为。
dev-master
2015-01-08 12:06 UTC
Requires
- propel/propel: 2.0.*@dev
Requires (Dev)
- phpunit/phpunit: ~4.0
This package is auto-updated.
Last update: 2024-09-10 23:45:24 UTC
README
OptimisticLockingBehavior
用于 Propel2 的乐观锁行为。
用法
<table name="user"> <column name="id" required="true" primaryKey="true" autoIncrement="true" type="INTEGER" /> <column name="username" type="VARCHAR" size="100" primaryString="true" /> <behavior name="optimistic_locking" /> </table>
如果您未通过 composer 安装此行为,则需要将完整类名指定为行为名称
<behavior name="\MJS\OptimisticLocking\OptimisticLockingBehavior">
您可以定义不同的锁定列。默认为 version
。
<behavior name="optimistic_locking" /> <parameter name="version_column" value="locked_version"/> </behavior>
$user = UserQuery::create()->findById($id); $user->setUsername('Secret'); try { $user->save(); } catch (\MJS\OptimisticLocking\StaleObjectException $e) { //react on that case. Maybe show the edit form again with a hint //or reload $user and apply again your changes. } if (!$user->optimisticSave(){ //whoops, there was someone faster. }
针对 Versionable 的说明
此行为与 versionable-behavior 兼容。请确保在 versionable
之前加载 optimistic_locking
行为。
<behavior name="optimistic_locking" /> <behavior name="versionable" />