我遇到了一个奇怪的问题,试图在 silex 中使用 sluggable 和 timestampable 的学说 2 扩展。
首先,按照本指南,我已经成功地将教义2与silex一起使用:
http://martinsikora.com/silex-doctrine2-orm
之后,使用这个其他指南,我向我的实体管理器添加了 sluggable 和带时间戳的侦听器:
http://silex-doctrine-extensions.readthedocs.org/en/latest/doctrine.html
现在在我的实体中,我遇到了这个问题:
如果我使用类似的东西:
use Gedmo\Mapping\Annotation as Gedmo;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
*/
学说2不认识我的实体,我需要使用:
@Entity
代替@ORM\Entity
但是,如果我使用@ORM\Entity
gedmo 似乎可以工作,但他说他找不到 sluggable 或时间戳字段(修改、创建等),并且如果我运行 orm:generate-entities 学说 2,则找不到我的实体。
如果我使用@Entity
而不是@ORM\Entity
一切都可以正常工作,但是当我添加 gedmo 注释时,例如:
use Gedmo\Mapping\Annotation as Gedmo;
@Gedmo\Timestampable(on="create")
实体给了我关于正常注释的错误,比如@Column(type="datetime")
我认为唯一的方法是@ORM\
像我在互联网上找到的每个示例一样使用前缀,但是使用此前缀orm:generate-entities
停止查找我的实体。
在 symfony2 中我没有这个问题,我使用@ORM\
前缀和学说 2 扩展 sluggable 和时间戳,就像一个魅力,我使用 Silex 遇到了这个问题,它没有对学说 2 orm 的本机支持,只有 dbal,所以我使用以下提供程序来使用nutwerk-orm-扩展
如果你们有什么想法,请与我分享。