В моем приложении, разработанном с помощью Symfony 4.2 и API Platform,
Я устанавливаю Пакет DoctrineExtensions, чтобы использовать расширение Loggable,
и я следую инструкциям в Документация Symfony и Регистрируемое расширение.
Когда я использую только один EntityManager, все работает. Но я хочу переместить таблицу сущностей LogEntry в другую базу данных. Итак, я создал второй EntityManager, как описано в Документ Symfony.
После этого я изменяю в своем приложении объект с аннотацией @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, но всегда получаю одну и ту же ошибку ...
Спасибо за ваше время.
Спасибо за ответ, @D. Димитров, но я уже видел этот пост, и, к сожалению, он касается Zend Framework, а не Symfony.




Немного староват, но надеюсь, вам поможет -> github.com/Atlantic18/DoctrineExtensions/issues/833