1

尝试使用 @Gedmo\Timestampable(on="create") 注释创建实体时,我收到“SQLSTATE[23000]:完整性约束违规:1048 列‘创建’不能为空”

它也不适用于 Gedmo\Slug。

它在使用默认实体管理器时有效,但在使用主或创建时无效。

在我的 config.yml 我有以下配置:

stof_doctrine_extensions:
    default_locale: en
    translation_fallback: true
    orm:
        default:
            timestampable: true
            sluggable: true
        master:
            timestampable: true
            sluggable: true
        creation:
            timestampable: true
            sluggable: true

在我的 services.yml 我有以下内容:

gedmo.listener.timestampable:
    class: Gedmo\Timestampable\TimestampableListener
    tags:
        - { name: doctrine.event_subscriber, connection: default }
        - { name: doctrine.event_subscriber, connection: creation }
        - { name: doctrine.event_subscriber, connection: master }
    calls:
         - [ setAnnotationReader, [ @annotation_reader ] ]
gedmo.listener.sluggable:
    class: Gedmo\Sluggable\SluggableListener
    tags:
        - { name: doctrine.event_subscriber, connection: default }
        - { name: doctrine.event_subscriber, connection: master }
        - { name: doctrine.event_subscriber, connection: creation }
    calls:
        - [ setAnnotationReader, [ @annotation_reader ] ]

event_subscriber 似乎无法正常工作。

我正在使用 StofDoctrineExtensionsBundle 运行 Symfony 2.3.2。

创建 slug 的实体有:

/**
 * @var string
 *
 * @ORM\Column(name="title", type="string", length=255)
 */
private $title;

/**
 * @var string
 * @Gedmo\Slug(fields={"title"})
 * @ORM\Column(name="slug", type="string", length=255, unique=true)
 */
private $slug;

created 的实体有这个:

/**
 * @var \DateTime
 * @Gedmo\Timestampable(on="create")
 * @ORM\Column(name="created", type="datetime")
 */
private $created;

有任何想法吗?

4

0 回答 0