问题标签 [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 投票
2 回答
1220 浏览

symfony - 覆盖属性并使其在 Doctrine Translatable / Symfony2 中可翻译

我有一个映射超类,其字符串属性“名称”属于一个包(实际上是 SyliusAssortmentBundle)。我的包中有一个继承自该映射超类的类。我想通过使用 DoctrineExtensions (Translatable) 为我的实体添加可翻译功能。由于我无法在我的映射中重新声明属性“名称”,因此我正在尝试按照此原则文档覆盖该属性的映射:

http://docs.doctrine-project.org/en/latest/reference/inheritance-mapping.html#attribute-override

受此启发,我将其添加到我的 product.orm.xml 文件中

这似乎不起作用。我已向我的实体添加了一个虚拟属性 (trans_name),因此我确信可翻译扩展正在工作。

在坚持以下内容后:

只是“trans_name”已保存到“ext_translations”表中。

所以。是否可以覆盖映射并添加可翻译?如果是这样。我究竟做错了什么?...

谢谢

0 投票
1 回答
384 浏览

php - Doctrine Extensions [Sluggable] 完整性约束违规:列 slug 不是唯一的

我在这样的类之间使用继承:

车辆---汽车----跑车

车辆---卡车---卡车机器

我的类 Vehicle 具有实体注释和双向关系(多对多)。

对于 Car 和 Truck,我的 slug 不一样,是使用每个类的不同字段生成的。

我的课程:

https://github.com/VasMozart/DoctrineExtensions/tree/master/tests/Gedmo/Sluggable/Fixture/Inheritance2

和我的测试 https://github.com/VasMozart/DoctrineExtensions/blob/master/tests/Gedmo/Sluggable/Inheritance2Test.php

如果我实例化“汽车”我的 slug 工作,但如果我实例化“SportCar”我得到:“违反完整性约束:列 slug 不是唯一的”

谢谢,对不起我的英语

0 投票
3 回答
9270 浏览

symfony - Gedmo\Loggable 记录未更改的数据

我将 Symfony2.2 与 StofDoctrineExtensionsBundle(以及 Gedmo DoctrineExtensions)一起使用。我有一个简单的实体

更改现有对象的属性时,会在 table 中完成日志条目ext_log_entries。此日志表中的条目仅包含更改的列。我可以通过以下方式阅读日志:

但我不明白的是,为什么该字段birthdate总是包含在日志条目中,即使它没有改变。以下是三个日志条目的一些示例:

我只想记录真正改变的数据。有没有我还没有看到的选项?这似乎与事实有关,那birthdate是一个DateTime对象,不是吗?

编辑DateTime它与对象 无关。这甚至发生在其他实体中。我有另一个包含一个简单值的实体:

在浏览器中打开编辑表单并保存而不修改时,日志表包含:

为什么?

0 投票
1 回答
1346 浏览

symfony - Doctrine Translatable 如何仅获取带有翻译的记录

我正在使用来自DoctrineExtensions的 Symfony2 + Doctrine + Translatable 。

我有一篇实体文章,其中有几个可翻译的字段,例如标题和内容。现在发生的情况是,我创建了一堆中文文章,但没有添加英文翻译。当我尝试在我的主页上显示前 8 篇最新文章时,这给了我一些问题......当我用英文查看我的主页时,它会在那里显示一堆无标题的文章(没有标题的中文文章英文翻译)。

我通过使用 ORM 查询提示在 Translatable 扩展中找到了解决方案:“\Doctrine\ORM\Query::HINT_CUSTOM_OUTPUT_WALKER”。

这使您可以直接查询实际存储在 ext_translations 中而不是实体表中的实体的翻译字段。

因此,我用来获取主页文章的代码如下所示:

这实际上有效,但是生成的查询效率很低,以至于它大大减慢了页面的速度……我说的是 1800 毫秒的查询。我还尝试将我需要的字段放在 select 语句中,这提高了性能,但仍然不够。

有任何想法吗?

0 投票
0 回答
1050 浏览

doctrine-orm - Gedmo\Tree 如何对根进行排序?

我想在 Doctrine 中使用 Gedmo\Tree。我想显示所有树,是否可以对根节点进行排序?

例如:我有一些类别。有一些主要类别(根节点)和子类别(子类别)。如果我选择并构建树(例如方法childrenHierarchy),我将得到排序只有孩子......

我在 Internet 上寻找一些解决方案,我得到了两个可能的解决方案:1. 假根节点 2. 将排序列添加到表中

在我看来,第一个解决方案并不好。但是根据第二种解决方案怎么做呢?例如,如果我想按名称对根进行排序,我将如何做?

0 投票
1 回答
1252 浏览

symfony - gedmo doctrine translatable extension. Retrieve all translations or a specific one (different from the current locale)

I've an entity that uses gedmo doctrine translatable extension. I'm able to load this entity in the current locale.

Now, for an admin panel where I want users to see and edit the various translations, I want to show all the translations or a specific one chosen by the user.

I just have the ->getTranslations method on that entity. There's another trick to load just the select translation? Is there any best practice for the given scenario?

Thanks a lot!

0 投票
2 回答
408 浏览

symfony - DoctrineExtensions (l3pp4rd) 或 EntityAudit (simplethings)

我需要在 Symfony 2 应用程序上实现 Versionable Doctrine 行为。这实际上是一个 Symfony 1 迁移,已经实现了 Versionable 行为(Doctrine 1)。

我在那里找到了这两个解决方案

我真的很喜欢 EntityAudit 解决方案,因为考虑到 db 上的输出记录实体,它类似于 Doctrine 1 Versionable 行为。

关键是我认为该项目不活跃。最后一次提交是在 7 个月前完成的。它使用了一些不推荐使用的功能。

我这样想对吗。有什么我想念的吗?

0 投票
3 回答
2482 浏览

mongodb - 在 symfony2 中通过学说扩展在学说 2 odm 和 orm 之间共享对象

在我的项目中,我需要在 orm 和 odm 之间共享对象。我有一个实体“Variation”和一个文档“Tracking”。一种变体可以容纳许多跟踪事件。我试图通过使用 stofdoctrineextensionbundle 的 symfony 2.3 的理论扩展引用来解决它,但无论我做什么它都行不通。也许你们中的某个人有一个想法。

跟踪文件:(注意 $variation )

变体实体(注意 $trackingEvents )

0 投票
2 回答
1783 浏览

symfony - 注意:试图在 vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php 行 481 中获取非对象的属性

我有一个与教义、可记录(DoctrineExtension)和听众有关的非常奇怪的案例。

我将解释我在这里遇到的情况,下面是我认为与问题相关的所有代码。

我有两个实体(协议和模板),其中协议基于特定的模板版本。模板实体具有 DoctrineExtension Loggable 注释。因此,我可以使用 LogEntryRepository->revert() 方法将协议模板恢复为特定版本。(我正在使用 postLoad 侦听器来执行此操作,因此每次检索协议时,都会为该协议加载正确的模板版本)。

如果我得到一个控制器操作,其中使用 ParamConververter 注释检索协议,则一切正常,并且使用正确的模板检索我的协议。如果我尝试使用查询生成器在控制器操作的第一行中检索相同的协议,则会收到以下异常

任何帮助,将不胜感激。谢谢。

只需复制与问题相关的部分:

实体

教义订阅者

行动

通过此操作,我可以毫无问题地获得所需的协议。

使用此代码,我得到了异常(硬编码的 id 和此代码仅用于测试)

0 投票
1 回答
3117 浏览

symfony - Symfony 2 中的 Doctrine Tree 路径迭代

我有变量 $path ,其中包含同级类别名称的数组。使用这个变量,我想创建一个新的数组 $categories_children,它将根据其标题包含 $path 数组中每个类别的子数组。我正在使用Gediminas Morkevicius的 Doctrine Tree-Nestedset扩展,我已经尝试过:

问题是带有参数 $parent 的方法 getChildren() 返回与传递的参数为 NULL 时相同的数组。这意味着它将返回所有以 root 开头的节点,而不是从所选类别开始。不知何故,在 $parent 变量中使用的方法 findOneByTitle() 不接受来自 getPath() 的参数并且表现为 NULL。