В моем приложении, разработанном с использованием Symfony 4.2 и API Platform,
я устанавливаю комплект DoctrineExtensions , чтобы использовать расширение Loggable,
и следую инструкциям в документации Symfony и Расширение Loggable .
Когда я использую только один EntityManager, все работает.
Но я хочу переместить таблицу сущностей LogEntry в другую базу данных.
Поэтому я создал второй EntityManager, как описанов Symfony doc .
После этого в моем приложении я изменяю сущность с аннотацией @Gedmo\Loggable
и получаю эту ошибку:
The class 'Gedmo\Loggable\Entity\LogEntry' was not found in the chain configured namespaces 'App\Entity'
.
Мой config/packages/doctrine.yaml
файл:
parameters:
env(DATABASE_URL): ''
doctrine:
dbal:
connections:
default:
driver: 'pdo_mysql'
server_version: '%env(resolve:SERVER_VERSION)%'
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
url: '%env(resolve:DATABASE_URL)%'
log:
driver: 'pdo_mysql'
server_version: '%env(resolve:SERVER_VERSION)%'
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
url: '%env(resolve:LOG_DATABASE_URL)%'
orm:
auto_generate_proxy_classes: '%kernel.debug%'
entity_managers:
default:
naming_strategy: doctrine.orm.naming_strategy.underscore
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
log:
naming_strategy: doctrine.orm.naming_strategy.underscore
connection: log
mappings:
gedmo_loggable:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/vendor/gedmo/doctrine-extensions/lib/Gedmo/Loggable/Entity'
prefix: 'Gedmo\Loggable\Entity'
alias: GedmoLoggable
Пример сущности, которую я хочу посмотреть:
<?php
namespace App\Entity;
...
use Gedmo\Mapping\Annotation as Gedmo;
...
/**
* @ApiResource
* @Gedmo\Loggable
* @ORM\Table(name="patients")
*/
class Patient
{
/**
* @ORM\Id
* @ORM\Column(type="guid", unique=true)
* @ORM\GeneratedValue(strategy="UUID")
* @Assert\Uuid
*/
private $id;
/**
* @ORM\Column(length=50)
* @Assert\NotBlank()
* @Assert\Length(max=50)
* @Gedmo\Versioned
*/
public $familyName;
/**
* @ORM\Column(length=50)
* @Assert\NotBlank()
* @Assert\Length(max=50)
* @Gedmo\Versioned
*/
public $firstName;
...
}
Я пытался добавить и удалитьнекоторые свойства в doctrine.yaml
, но я всегда получаю ту же ошибку ...
Спасибо за ваше время.