问题标签 [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.
symfony - 注册新的 Doctrine 事件订阅者时的 Symfony 异常 (SoftDeleteable)
我正在使用 Symfony 2.3 和带有DoctrineExtensions的 Sonata Admin Bundle (由StofDoctrineExtensionsBundle启用)。我启用、配置并成功测试了 SoftDeleteable 和 Timestampable 组件。
现在,当我尝试使用 Symfony 标记服务添加另一个 Doctrine 事件订阅者时,似乎 softdeleteable 侦听器被禁用。
我的服务:
订户:
在每个请求中,我都会遇到异常:
如果我禁用我的订阅者,问题就消失了。如何启用我的事件订阅者并拥有 softdeleteable?
symfony - generateUrl 在 childrenHierarchy 中不起作用
在学说扩展树中使用 generateUrl
在行动
错误:
FatalErrorException:错误:不在对象上下文中使用 $this
symfony - Symfony 中的 Doctrine 可上传扩展
我阅读这个文档是为了了解可上传扩展的原则是如何工作的,这样我就可以在我的 Symfony 项目中使用它。
问题出在使用示例中,我看到一个名为的对象$listener
,但我真的不知道它来自哪里。
我打算在我的一个控制器中使用一段类似的代码,但我不知道要实例化那个监听器,或者从哪里获取它。
php - DoctrineExtensions,实体在当前语言环境中有翻译吗?
我正在使用 DoctrineExtensions 来翻译我的实体。它工作得很好,但我不知道如何解决这个问题:
我使用翻译后备、个人翻译和 ORM 查询提示来减少数据库查询。如果翻译不存在,那么它将回退到默认值。到这里为止,没有问题。
但是(这是我的问题)我怎么知道实体已经回到默认值?我的意思是,如果一个实体没有翻译,有没有办法检查它?
例如,如果我们想在没有翻译的时候以某种方式处理这个实体。就像是 :
当然,为了简单起见,我们认为所有字段都已翻译或未翻译。
我希望我已经足够清楚了。
谢谢
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,但如果我确实提供了它,则将其设置为我提供的内容。
谢谢
php - FOSRestBundle Doctrine 扩展不适用于“PUT”方法
我对 FOSRestBundle 和 Doctrine Extensions 有疑问。我Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle
用来实现 Doctrine Extensions。
这是我的问题:我有一个名为“Articles”的实体,它有一些由一些学说扩展提供的字段。在我的情况下,时间戳和可责备。
我通过 REST 使用此控制器方法成功创建了新文章:
当我创建一个新实体发布类似
它可以毫无问题地完成工作,给我这样的对象
但是如果我尝试用这个控制器方法修改这篇文章
我的对象变成
为了完整起见,我将添加特定于捆绑包的 routing.yml:
以及涉及我的问题的conf:
关于这里的问题有什么想法吗?
forms - Symfony2:使用 A2lixTranslationFormBundle 和 Gedmo\DoctrineExtensions Translatable 渲染翻译表单时出现问题
我正在使用gedmo/doctrine-translations
并a2lix/translation-form-bundle: 2.*@dev
翻译我的实体。
翻译表单始终呈现字段和内容,但我的实体本身不包含字段或内容字段。
表格类型
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
有人可以帮忙吗?
非常感谢!!!
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 以使用我的新自定义类型?
非常感谢。