gpt4 book ai didi

doctrine-orm - 使用带有silex的doctrine2 sluggable扩展

转载 作者:行者123 更新时间:2023-12-04 18:21:04 26 4
gpt4 key购买 nike

我遇到了一个奇怪的问题,试图在 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扩展像魅力一样可插入和时间戳,我使用Silex遇到了这个问题,它没有对教义2 orm的 native 支持,只有dbal,所以我使用以下提供程序来使用nutwerk-orm-extension

如果你们有什么想法,请与我分享。

最佳答案

您是否在 composer 中添加了 Gedmo 命名空间?

{
"autoload": {
"psr-0": {
"Gedmo": "vendor/gedmo/doctrine-extensions/lib'"
},
}

我将此扩展与 Silex 一起使用:

https://github.com/dflydev/dflydev-doctrine-orm-service-provider

我添加提供者和订阅者:
//Setting Doctrine ORM
$app->register(new Dflydev\Silex\Provider\DoctrineOrm\DoctrineOrmServiceProvider, array(
"orm.proxies_dir" => $app['db.orm.proxies_dir'],
"orm.em.options" => array(
"mappings" => array(
array(
"type" => "annotation",
"namespace" => "Entity",
"path" => 'my_path',
)
),
),
));

//Setting Doctrine2 extensions

$timestampableListener = new \Gedmo\Timestampable\TimestampableListener();
$app['db.event_manager']->addEventSubscriber($timestampableListener);

它对我有用,但我必须在我的实体中添加这些“用途”:
namespace Entity;

use Gedmo\Mapping\Annotation as Gedmo;
use Doctrine\ORM\Mapping\Id;
use Doctrine\ORM\Mapping\Column;
use Doctrine\ORM\Mapping\GeneratedValue;

/**
* EntityPages
*
* @Table(name="pages")
* @Entity(repositoryClass="Entity\Repository\PagesRepository")
* @HasLifecycleCallbacks()
*/
class EntityPages
{
/**
* @var integer
*
* @Column(name="id", type="integer", precision=0, scale=0, nullable=false, unique=false)
* @Id
* @GeneratedValue(strategy="IDENTITY")
*/
private $id;

关于doctrine-orm - 使用带有silex的doctrine2 sluggable扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10676242/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com