Gedmo loggable работает, но не хранит имя пользователя

У меня есть логирование, работающее над моей сущностью, чтобы при внесении изменений в поле продукта с @Gedmo\Versioned аннотация новая версия создана. Однако единственная проблема заключается в том, что username поле остается NULL, Существует аутентифицированный пользователь, поскольку обновление выполняется в бэкэнде Sonata Admin.

<?php

namespace MyApp\CmsBundle\Entity\Log;

use Doctrine\ORM\Mapping as ORM;
use Gedmo\Loggable\Entity\MappedSuperclass\AbstractLogEntry;
use Gedmo\Loggable\Entity\Repository\LogEntryRepository;

/**
 * @ORM\Entity(repositoryClass="Gedmo\Loggable\Entity\Repository\LogEntryRepository", readOnly=true)
 * @ORM\Table(
 *      name="log_product",
 *      indexes={
 *          @ORM\Index(name="log_class_lookup_idx", columns={"object_class"}),
 *          @ORM\Index(name="log_date_lookup_idx", columns={"logged_at"}),
 *          @ORM\Index(name="log_user_lookup_idx", columns={"username"}),
 *      }
 * )
 */
class ProductLog extends AbstractLogEntry
{

}

Так что, казалось бы, log_user_lookup_idx не работает правильно, мне нужен какой-то конкретный конфиг для этого?

1 ответ

Решение

Похоже, мне не хватало немного конфигурации, добавив следующее в основной app/config/config.yml файл сделал свое дело.

stof_doctrine_extensions:
    default_locale: en
    orm:
        default:
            loggable: true

У меня действительно было это в моих связках services.yml конфигурации:

gedmo.listener.loggable:
    class: Gedmo\Loggable\LoggableListener
    tags:
        - { name: doctrine.event_subscriber, connection: default }
    calls:
        - [ setAnnotationReader, [ "@annotation_reader" ] ]

Это удалось отследить изменяемую сущность, но не пользователя, с тех пор я удалил эту конфигурацию, и ведение журнала остается работать только с stof_doctrine_extensions настройка конфига.

Если у вас есть оба в вашей кодовой базе, то все будет зарегистрировано дважды, я нашел.

Другие вопросы по тегам