2015-09-16 7 views
4

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

<?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 не работает правильно, то есть конкретный бит конфигурации я требую для этого?

+0

Вы настроили регистрацию 'username' для регистрации? –

+0

В Product отсутствует атрибут 'username'. Он подбирает объект пользователя через поиск. – diggersworld

+0

Я вижу только индексы в вашем коде, это создает индексы в вашей таблице базы данных, но не определяет, как регистрируются поля, см. [Документация] (https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc /loggable.md#loggable-entity-example). –

ответ

6

Похоже, что мне не хватает конфигурации, добавив следующее в основной файл 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.

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

+1

Ваш отзыв был полезен для меня. Я записывался дважды при каждом изменении. db, полное дубликатов. благодаря – manuelbcd