锁定保护
锁定保护将防止在多用户同时编辑对象时发生数据损坏。
启用锁定保护
默认情况下,锁定保护是禁用的。您可以在您的 sonata_admin
配置中启用它
1 2 3 4 5
# config/packages/sonata_admin.yaml
sonata_admin:
options:
lock_protection: true
您还必须配置您想要支持的每个实体,通过添加一个名为 $version
的字段来激活 Doctrine Version
功能。
使用注解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
// src/Entity/Car.php
namespace App\Entity;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
class Car
{
// ...
#[ORM\Column(type: Types::INTEGER)]
#[ORM\Version]
private ?int $version = null;
// ...
}
使用 XML
1 2 3 4 5 6 7 8 9 10 11
<?xml version="1.0" encoding="UTF-8"?>
<!-- src/Resources/orm/Car.orm.xml -->
<doctrine-mapping>
<entity name="App\Entity\Car">
<!-- ... -->
<field name="version" type="integer" version="true"/>
<!-- ... -->
</entity>
</doctrine-mapping>
有关此内容的更多信息,请访问 Doctrine 文档
注意
如果对象模型管理器不支持对象锁定,则不会为该对象触发锁定保护。目前,只有 SonataDoctrineORMAdminBundle
支持它。
这项工作,包括代码示例,根据 Creative Commons BY-SA 3.0 许可协议获得许可。