silex で sluggable および timestampable な doctrine2 拡張機能を使用しようとすると、奇妙な問題が発生します。
まず第一に、このガイドに従って silex で doctrine2 を使用することに成功しました:
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
*/
doctrine2 は私のエンティティを認識しません。使用する必要があります:
@Entity
それ以外の@ORM\Entity
しかし、私が@ORM\Entity
gedmo を使用すると動作するように見えますが、彼はスラッグ可能なフィールドまたはタイムスタンプ可能なフィールド (変更、作成など) を見つけることができず、orm:generate-entities doctrine2 を実行するとエンティティが見つからないと言っていました。
everithing@Entity
の代わりに使用すると問題なく動作しますが、次のような gedmo 注釈を追加すると:@ORM\Entity
use Gedmo\Mapping\Annotation as Gedmo;
@Gedmo\Timestampable(on="create")
エンティティは、次のような通常の注釈に関するエラーを表示しました@Column(type="datetime")
@ORM\
唯一の方法は、インターネットで見つけたすべての例のようにプレフィックスを使用することだと思いますが、このプレフィックスを使用するとorm:generate-entities
、エンティティの検索が停止します。
symfony2 では、私はこの問題を抱えていません。@ORM\
プレフィックスと doctrine2 拡張機能を sluggable でタイムスタンプ可能なものをチャームのように使用しています。Silex を使用してこの問題に遭遇しました。この問題は、doctrine2 orm へのネイティブ サポートがなく、dbal のみであるため、次のプロバイダーを使用して使用しますNutwerk-orm-extension
アイデアがあれば、私と共有してください。