我遇到了一個奇怪的問題,試圖在silex中使用doctrine2擴展sluggable和timestampable。使用doctrine2 sluggable擴展與silex
首先我succeded與硅石使用doctrine2本指南以下內容:
http://martinsikora.com/silex-doctrine2-orm
之後,使用該另一方的導向,我已經加sluggable和timestampable監聽到我的實體管理器:
http://silex-doctrine-extensions.readthedocs.org/en/latest/doctrine.html
現在在我的實體我有這樣的問題:
如果我使用類似的東西:
use Gedmo\Mapping\Annotation as Gedmo;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
*/
doctrine2不承認我的實體,我需要使用:
@Entity
而不是@ORM\Entity
但是,如果使用@ORM\Entity
gedmo似乎工作,但他說我找不到可延遲或時間戳字段(修改,創建等),如果我運行orm:generate-entities doctrine2,找不到我的實體。
如果我使用的@Entity
代替@ORM\Entity
everithing做工精細,但當我添加gedmo註釋,如:
use Gedmo\Mapping\Annotation as Gedmo;
@Gedmo\Timestampable(on="create")
實體給我的錯誤對正常的註解像@Column(type="datetime")
我認爲唯一的方式是使用前綴@ORM\
就像我在互聯網上找到的每個示例一樣,但是使用此前綴orm:generate-entities
停止查找我的實體。
在Symfony2中我沒有這個問題,我使用@ORM\
前綴和doctrine2擴展sluggable和timestampable就像一個魅力,我碰到這個問題,使用Silex的,有沒有原生支持doctrine2 ORM,只有DBAL,所以我用以下提供者使用nutwerk-orm-extension
如果你們有一些想法,請與我分享。
非常有幫助謝謝。我還發現使用traits更容易'使用TimestampableEntity;'而不需要'* @HasLifecycleCallbacks()'也適用於我需要的多個數據庫'$ app ['dbs。event_manager'] ['default'] - > addEventSubscriber(new \ Gedmo \ Timestampable \ TimestampableListener());' – gadelkareem