问题标签 [stofdoctrineextensions]

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 投票
0 回答
213 浏览

php - 树添加具有空根的子节点给我的根 = 0,NestedTreeRepository 搜索 null

我有实体

当我添加关键字时

我在数据库中 root_id = 0

当我使用

db 是 Gedmo\Tree\Entity\Repository\NestedTreeRepository

我得到空的结果。我在查询中看到 root_id 为空。但在数据库中我有 0

0 投票
1 回答
534 浏览

symfony - 实体更新时可上传的 DoctrineExtensions 不保留当前值

我正在使用 Uploadable 扩展程序,对此非常满意。我有一个字段作为可上传(照片)的实体,另一个字段是该照片的注释(注释)。当我第一次创建实体时,我选择了文件,并添加了注释,一切正常,但是当我只想更新注释时,它会丢失先前上传照片的存储路径。如果该字段出现空值,有没有办法保留旧值?

这是我的实体。

这是我的控制器部分:

0 投票
1 回答
80 浏览

symfony - 更新用 DoctrineExtensions Sortable 更改的实体

我有一个 PreUpdate 监听器,可以在其中更改条目版本。我有自己的版本控制系统(只是一个整数字段,其版本号在实体更改时增加到最高+1)。

所以如果我改变某事,版本就会增加。我也使用 DoctrineExtensions Sortable。问题是我应该将版本更改为位置更改的所有实体。

例如,如果我将实体位置更改为 4,我会给这个实体一个新版本(比如说 22)。并且随着这五个其他实体的位置发生变化(例如)。因此,对于这五个实体,我也应该将版本更改为 22。知道如何在没有 PreUpdate 事件产生的无限循环的情况下实现这一点吗?

0 投票
1 回答
473 浏览

symfony - 如果我们在 Gedmo 学说树扩展中有使用 parent_id 的现有层次结构,如何在“关闭”表中填充数据?

我有带有 parent_id 列的现有类别层次结构。我已经配置了 Gedmo Tree 扩展和更新架构。我可以看到“级别”列已添加到类别表中,并创建了 category_closure 表。

如何填充 category_closure 表中的数据。没有

ClosureTreeRepository 的方法。我尝试更新类别记录以触发 TreeListener,但 category_closure 中仍然没有数据。

如何在 category_closure 表中填充层次结构?

0 投票
1 回答
96 浏览

symfony - symfony2 迁移包拒绝迁移

大家好,我已经在 Page CRUD 中集成了 stofdoctrinebundle 和 vichuploaderbundle 的 slug 和图像上传。

这是实体:

当我尝试使用学说 migrationbundle 进行迁移时,它会抛出错误“语法错误或访问冲突:1061 Duplicate key name ...”

在数据库中,我已经有了这个唯一索引:

在此处输入图像描述

我不明白为什么迁移要添加它已经存在。

0 投票
1 回答
425 浏览

php - StofDoctrineExtensionsBundle 可翻译

我正在用两种语言构建 Symfony 2 应用程序,我已经实现了 StofDoctrineExtensionsBundle 的 Translatable。Translatable 使其他表 ext_translations 并存储翻译。

这是我将用来翻译的表(对象表):

在此处输入图像描述

这是 ext_translations 表(ext_translations 表):

在此处输入图像描述

当我出于某种原因在 ext_translations 表中运行代码以保存翻译时。

创建时它在对象表中写入标题,但稍后更新它只更新 ext_translations 表。

如何在 symfony 2 中使用两种语言处理更新和创建?

我是否需要复制这些输入并将它们存储在一次提交中。例如在对象表中我有标题我需要有:

当它们被提交时,更改参数 local:

然后提交上面的代码。这种应用的最佳解决方案是什么?

0 投票
1 回答
275 浏览

symfony - Symfony2:EasyAdminbundle + StofDoctrineExtensionsBundle + VichUploaderBundle

我有一个使用 EasyAdminBundle 进行管理的项目。在一个名为“Post”的实体中,我有字段“title”、“image”和“post”,我想跟踪它们的变化。属性“image”仅存储图像的文件名 - 完整的上传过程由 VichUploaderBundle 管理。

如何/在哪里可以网格化旧图像文件不会在更改时被删除,因为它将用于历史记录?

0 投票
1 回答
227 浏览

symfony - Symfony2 / Doctrine 2:Sluggable 扩展:在 onFlush 或 postUpdate 事件期间访问 slug 值

我有一个与ImageRestaurant实体具有一对一关系的餐厅实体。

我可以使用一个表单来编辑这两个实体(ImageRestauranType 嵌入在 RestaurantType 中)。

Restaurant实体有一个slug,它是由StofDoctrineExtensionsBundle生成的,并使用 Gedmo\Sluggable 注释。

每次更新Restaurant实体并重新生成slug属性时,我都尝试使用slug属性(例如slug.jpg )重命名链接到我的ImageRestaurant实体的文件。我还想更改ImageRestaurant实体的名称属性。

我有两个使用 Doctrine 事件的选项:

  1. onFlush 事件:

我可以访问计划更新的实体(Restaurant),但此时无法访问更新的 slug。所以我无法更新文件和ImageRestaurant实体。

  1. 更新后事件:

我可以访问更新的slug,但如文档中所述,此事件与数据库中的持久性无关:

这三个发布事件在 EntityManager#flush() 中调用。此处的更改与数据库中的持久性无关,但您可以使用这些事件来更改非持久性项目,例如非映射字段、日志记录,甚至是未由 Doctrine 直接映射的关联类。

对于这个事件,由于我可以访问实体 ID,我认为我可以从数据库中获取实体餐厅(新更新的实体)和ImageRestaurant并继续进行文件和ImageRestaurant更新?

关于如何实现这一目标的任何想法?

0 投票
2 回答
325 浏览

symfony - 可上传的 stof 学说扩展 - 文件“”不存在

我的问题

我很想stof/StofDoctrineExtensionsBundlesymfony3. 因此,$form->bind我尝试使用 stof 文档中的示例而不是使用$form->handleRequest. 提交表单后不幸的是,我收到以下错误:

文件“”不存在

我会很感激你告诉我我做错了什么。也许有人会这么好心并为我提供工作上传脚本的示例?


我的代码


我的控制器代码如下所示:

使用以下函数构建表单:

和我的实体类:

我正在使用此处列出的默认配置https://symfony.com/doc/master/bundles/StofDoctrineExtensionsBundle/index.html

0 投票
2 回答
2227 浏览

doctrine-orm - 如何使用 symfony3、doctrine2 和 stofDoctrineExtensionsBundle 获取 Gedmo 树元素的路径

我正在使用 Symfony v3.0.4、Doctrine v2.5.4 和 StofDoctrineExtensionsBundle [1] 来管理树结构。

为了设置树结构,我使用了 Symfony.com [2] 上的文档,然后是 GitHub [3] 上的文档。

然后我继续进行树设置 - 使用示例 [4] 中的树实体并使用 [5] 中的代码创建树。

我没有使用 [6] 和 [7],因为它似乎没有必要(据我所知,没有它的树的工作和显示)。见更新。

到目前为止,我在数据库中有一个树结构并显示它,我修改了示例 [8]。像这样:

如果我像这样修改一行:

为了获得树的每个元素的路径,我得到错误:

正如在 [9] NestedTreeRepositry 中看到的,有一个方法 getPath()。

更新:我尝试了 [6] 但没有设法设置它。然后我尝试 [7] 设置好,但仍然错误仍然存​​在!

请指教。感谢您的时间和知识。