Я хочу добавить фильтр doctrine с CompilerPass
в созданный мной пакет.
Я пробовал это и Я думаю, что фильтр добавлен (потому что я вызываю dump () в FilterCollection
: вызывается функция enable()
).
class UserCompilerPass implements CompilerPassInterface
{
public function process(ContainerBuilder $container): void
{
$container->getDefinition('doctrine.orm.default_configuration')
->addMethodCall('addFilter', [
'deleted_at',
DeletedAtFilter::class,
])
;
$container->getDefinition('doctrine.orm.default_entity_manager')
->addMethodCall('getFilters', [], true)
->addMethodCall('enable', [
'deleted_at',
])
;
Но теперь у меня такая ошибка:
Аргумент 1 передан в Doctrine \ Bundle \ DoctrineBundle \ ManagerConfigurator :: configure () должен реализовывать интерфейс Doctrine \ ORM \ EntityManagerInterface, экземпляр Doctrine \ ORM \ Query \ FilterCollection, заданный
Я думаю, ->addMethodCall('getFilters', [], true)
заменяет исходный класс doctrine.orm.default_entity_manager
служба. Вы знаете, как избежать такого поведения?