1

@Gedmo\Timestampable(on="create") アノテーションを使用してエンティティを作成しようとすると、「SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'created' cannot be null」というメッセージが表示されます

また、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 を実行しています。

スラッグを作成するためのエンティティには次のものがあります。

/**
 * @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;

作成されたエンティティには次のものがあります。

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

何か案は?

4

0 に答える 0