问题标签 [doctrine-extensions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1186 浏览

symfony - 注册新的 Doctrine 事件订阅者时的 Symfony 异常 (SoftDeleteable)

我正在使用 Symfony 2.3 和带有DoctrineExtensions的 Sonata Admin Bundle (由StofDoctrineExtensionsBundle启用)。我启用、配置并成功测试了 SoftDeleteable 和 Timestampable 组件。

现在,当我尝试使用 Symfony 标记服务添加另一个 Doctrine 事件订阅者时,似乎 softdeleteable 侦听器被禁用。

我的服务:

订户:

在每个请求中,我都会遇到异常:

如果我禁用我的订阅者,问题就消失了。如何启用我的事件订阅者并拥有 softdeleteable?

0 投票
2 回答
373 浏览

symfony - generateUrl 在 childrenHierarchy 中不起作用

在学说扩展树中使用 generateUrl

在行动

错误:

FatalErrorException:错误:不在对象上下文中使用 $this

0 投票
1 回答
2658 浏览

symfony - Symfony 中的 Doctrine 可上传扩展

我阅读这个文档是为了了解可上传扩展的原则是如何工作的,这样我就可以在我的 Symfony 项目中使用它。

问题出在使用示例中,我看到一个名为的对象$listener,但我真的不知道它来自哪里。

我打算在我的一个控制器中使用一段类似的代码,但我不知道要实例化那个监听器,或者从哪里获取它。

0 投票
1 回答
1077 浏览

upload - 学说扩展可上传,如何在 Zend Framework 2 中使用?

我在我的项目中集成了学说扩展。Timestampable 就是一个例子。但是如何使用“可上传”行为?

我读了这个文档。他们在使用部分写了关于 using $listener,但我如何获得这个变量?在我的控制器或服务中?它从何而来?

感谢您的任何建议...

0 投票
1 回答
116 浏览

php - DoctrineExtensions,实体在当前语言环境中有翻译吗?

我正在使用 DoctrineExtensions 来翻译我的实体。它工作得很好,但我不知道如何解决这个问题:

我使用翻译后备、个人翻译和 ORM 查询提示来减少数据库查询。如果翻译不存在,那么它将回退到默认值。到这里为止,没有问题。

但是(这是我的问题)我怎么知道实体已经回到默认值?我的意思是,如果一个实体没有翻译,有没有办法检查它?

例如,如果我们想在没有翻译的时候以某种方式处理这个实体。就像是 :

当然,为了简单起见,我们认为所有字段都已翻译或未翻译。

我希望我已经足够清楚了。

谢谢

0 投票
1 回答
1781 浏览

forms - 使用 Gedmo TreeSlugHandler 编辑 Slug

我有一个使用 Symfony 2 中的 Gedmo Tree Doctrine 扩展的分层实体。类别实体的代码是:

给定一个标题为 的类别和一个标题为Bands的子类别,Rock后一个类别在创建时具有bands/rock. 这按预期工作。

但是,当我将 slug 字段添加到表单时,当我编辑实体时,我最初会被bands/rock添加到表单字段中。如果我将其更改为bands/rock-and-roll并提交表单,则 slug 将更新为bands/bands-rock-and-roll,而不是bands/rock-and-roll我所期望的。

如果我编辑类别并将 slug 字段设置为rock-and-roll,然后提交表单,则 slug 将更新为bands/rock-and-roll。我希望蛞蝓rock-and-roll在更新之后。

我需要做什么来解决这种行为?如果没有提供,我本质上希望使用处理程序自动生成 slug,但如果我确实提供了它,则将其设置为我提供的内容。

谢谢

0 投票
2 回答
1015 浏览

php - FOSRestBundle Doctrine 扩展不适用于“PUT”方法

我对 FOSRestBundle 和 Doctrine Extensions 有疑问。我Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle用来实现 Doctrine Extensions。

这是我的问题:我有一个名为“Articles”的实体,它有一些由一些学说扩展提供的字段。在我的情况下,时间戳和可责备。

我通过 REST 使用此控制器方法成功创建了新文章:

当我创建一个新实体发布类似

它可以毫无问题地完成工作,给我这样的对象

但是如果我尝试用这个控制器方法修改这篇文章

我的对象变成

为了完整起见,我将添加特定于捆绑包的 routing.yml:

以及涉及我的问题的conf:

关于这里的问题有什么想法吗?

0 投票
1 回答
1656 浏览

forms - Symfony2:使用 A2lixTranslationFormBundle 和 Gedmo\DoctrineExtensions Translatable 渲染翻译表单时出现问题

我正在使用gedmo/doctrine-translationsa2lix/translation-form-bundle: 2.*@dev翻译我的实体。

翻译表单始终呈现字段内容,但我的实体本身不包含字段内容字段。

表格类型

0 投票
1 回答
968 浏览

doctrine-orm - 从 Doctrine 创建自动生成一个以年份为前缀的 slug

我想在我的 Symfony 2.4 应用程序中从 Doctrine 自动生成一个 slug,根据创建记录的年份,该 slug 是唯一的。我正在使用 DoctrineExtensions。

对于我的博客记录,我希望路线是/blog/{year}/{slug}

所以可以说我有这两条记录

id: 1 title: My Blog Title createdAt: 2013-08-14 18:48:21

id: 2 title: My Blog Title createdAt: 2014-02-01 17:12:10

我希望两个 slug 都是my-blog-title,因为它们是基于 createdAt 的唯一记录

所以我的两条路线将是

/blog/2013/my-blog-title /blog/2014/my-blog-title

但是,我似乎无法让它工作:

这是我的 orm.yml 的相关部分

fields: title: type: text slug: type: text gedmo: slug: unique_base: createdAt fields: - title createdAt: type: datetime gedmo: timestampable: on: create

这是可行的,因为 createdAt 对于所有记录都是唯一的,因为我的任何两个记录几乎不可能具有相同的创建日期,直到完全相同的秒。

因此,如果我添加第三条记录:

id: 3 title: My Blog Title createdAt: 2014-03-02 17:12:10

它让我使用相同的蛞蝓-my-blog-title

在我的 orm.yml 文件中,我希望能够执行类似的操作

unique_base: createdAt("Y")

所以只有我创建日期的年份被用作基础,所以如果记录在不同的年份,我可以有相同的 slug,但如果记录在同一年,则不能有相同的 slug。

我知道我可以把日期拉到蛞蝓本身

2014-my-blog-title但它需要看起来像2014/my-blog-title

有人可以帮忙吗?

非常感谢!!!

0 投票
0 回答
688 浏览

symfony - 如何将 Sluggable 与自定义映射类型一起使用?

在 Symfony2 项目中,我创建了一个自定义映射字段,以便按照StackOverflow question中的建议加密数据库中的字符串。我想使用 Gedmo\Sluggable Doctrine 扩展来处理其中一个数据库字段。但显然我收到以下错误消息,因为“encrypted_string”不是允许的类型:

[Gedmo\Exception\InvalidMappingException]
无法使用字段 - [用户名] 用于 slug 存储,类型无效并且必须
是类中的“字符串”或“文本” - My\PrivateApplication\Bundle\UserBundle
\Entity\User

--编辑-- 这是我的实体:

Gedmo\Sluggable\Mapping\Driver\Annotation 类的属性 $validTypes 似乎定义了 sluggable 的有效类型。如何修改 SluggableListener 以使用我的新自定义类型?

非常感谢。