Symfony 5 (Including 4) using Gedmo Doctrine Extension for SoftDelete(Symfony 5(包括4)使用Gedmo Doctrine扩展进行SoftDelete)
本文介绍了Symfony 5(包括4)使用Gedmo Doctrine扩展进行SoftDelete的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我曾尝试对symfony 5中的一些实体使用软删除(使用gedmo/学说扩展),但遇到了一些问题:
侦听器";SoftDeleteableListener";未添加到EventManager!
编译错误:AppEntityAdmin和GedmoSoftDeleteableTraitsSoftDeleteableEntity在AppEntityAdmin的组合中定义相同的属性($DeletedAt)。然而,定义不同,被认为是不相容的。类已编写
这就是我试过的,它运行得很好
安装Gedmo/学说-扩展
composer require gedmo/doctrine-extensions
将列DELETED_AT添加到表中您要使用的软删除(使用迁移或手动添加)
将CONFIG添加到CONFIG/Packages/Posiine.yaml
filters: softdeleteable: class: GedmoSoftDeleteableFilterSoftDeleteableFilter enabled: true
将配置添加到config/services.yaml
gedmo.listener.softdeleteable: class: GedmoSoftDeleteableSoftDeleteableListener tags: - { name: doctrine.event_subscriber, connection: default } calls: - [ setAnnotationReader, [ '@annotation_reader' ] ]
将Gedmo添加到您的实体并使用SoftDeleteableEntity
<?php namespace AppEntity; use GedmoSoftDeleteableTraitsSoftDeleteableEntity; /** * @ORMEntity(repositoryClass=AdminRepository::class) * @ORMTable(name="admins") * @GedmoSoftDeleteable(fieldName="deletedAt", timeAware=false, hardDelete=false) */ class Admin implements UserInterface { use SoftDeleteableEntity; …. }
最后,照常使用删除功能,将更新DELETED_AT列
/** * @param Admin $admin */ public function delete(Admin $admin) { $this->_em->remove($admin); $this->_em->flush(); }
注意:
不需要将deletedAt
字段、getDeletedAt
和setDeletedAt
添加到您的实体
推荐答案
如果使用php格式(配置/服务.php)而不是yaml,请将步骤4更改为以下内容。
$services->set("gedmo.listener.softdeleteable")
->class(GedmoSoftDeleteableSoftDeleteableListener::class)
->tag(name: 'doctrine.event_subscriber', attributes: ["method" => "setAnnotationReader", "connection" => "default"])
->args([service('doctrine.orm.metadata.annotation_reader')])
;
这篇关于Symfony 5(包括4)使用Gedmo Doctrine扩展进行SoftDelete的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:Symfony 5(包括4)使用Gedmo Doctrine扩展进行SoftDelete
基础教程推荐
猜你喜欢
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- 在多维数组中查找最大值 2021-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01