问题标签 [gedmo-loggable]

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 回答
2692 浏览

symfony - Gedmo 可记录工作但不存储用户名

我已经在我的实体上进行了日志记录,这样当我使用@Gedmo\Versioned注释对产品字段进行更改时,就会创建一个新版本。然而,唯一的问题是该username领域仍然存在NULL。在 Sonata Admin 后端执行更新时,有一个经过身份验证的用户。

所以看起来它log_user_lookup_idx不能正常工作,我需要一些特殊的配置吗?

0 投票
0 回答
194 浏览

php - Symfony2 Gedmo Loggable 版本和 slug 冲突?

当我在“名称”字段中使用 Slug 和 Versioned 时,我对 Gedmo 扩展有一点问题。

刷新 slug 后不会出现在 Gedmo 日志文件中。

我的结果:

我找到了一个可能的解决方案,其中直接在 setTitle 中包含 slug:

0 投票
1 回答
473 浏览

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

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

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

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

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

0 投票
0 回答
791 浏览

php - “Gedmo\Loggable\Entity\LogEntry”类不是有效的实体或映射的超类

我尝试对 Doctrine2 使用 Gedmo Loggable 扩展,但出现错误,我不明白为什么。

我得到了错误

致命错误:未捕获的 Doctrine\ORM\Mapping\MappingException:“Gedmo\Loggable\Entity\MappedSuperclass\AbstractLogEntry”的类“Gedmo\Loggable\Entity\LogEntry”子类不是有效的实体或映射的超类。在 C:\Projects\easyprod\librairies\doctrine\orm\lib\Doctrine\ORM\Mapping\MappingException.php 行 340

当我跑步时

配置文件——

0 投票
1 回答
275 浏览

symfony - Symfony2:EasyAdminbundle + StofDoctrineExtensionsBundle + VichUploaderBundle

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

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

0 投票
3 回答
854 浏览

symfony - 将安全用户的名称传递给 Symfony2 中 services.yml 中的侦听器

我正在使用 Gedmo Loggable 来跟踪用户对实体所做的更改。默认情况下不会为每次更改存储用户名,但有必要将其提供给侦听器。

这方面的一个例子,可以在 Loggable 的文档中找到:

这对我不起作用,原因有两个:

  1. 我在 services.yml 中注册监听器,而不是在控制器中
  2. 我不希望像示例中那样存储预先知道的用户名,而是存储登录用户的用户名

loggableListener 的方法 setUsername 要么需要一个字符串,要么需要一个带有提供字符串的方法 getUsername 的对象。

我怎样才能将任何一个传递给听众?我找到了一种传递 security_token 的方法,但这还不够。我目前拥有的是这样的:

我也在使用 Blameable 并为类似问题找到了一个很好的解决方法(整个监听器被覆盖)。我尝试为 Loggable 做同样的事情,但这似乎有点复杂。

主要问题:如何将安全用户对象(或其用户名)传递给 services.yml 中的侦听器?

更新

Matteo 向我展示了如何将函数的结果作为参数传递给侦听器。这几乎解决了问题。还有另一个服务,它在给定 token_storage 时提供用户名。但这意味着我需要将参数传递给服务,该参数作为参数提供给另一个服务。这个例子将解释:

现在的问题是,@security.token_storage 在这种情况下不被接受。如何将参数传递给方法 getUsername() ?

0 投票
1 回答
528 浏览

doctrine-orm - Doctrine Extension Loggable - 记录旧值而不是字段的新值

我实现了 Doctrine 的 Loggable 扩展。但现在我有以下情况。我想跟踪对象的“状态”。但是这些对象已经存在于我的数据库中,并且每个对象都有相应的状态。当我更新一个时,在 log_entry 中插入了一个对象的第一个日志,其状态具有新值。(假设我将状态从活动更改为挂起,并在日志条目中插入挂起)

从这一刻起,我无法恢复“活动”状态,因为它没有记录在任何地方。我可以用几种方法来处理这个问题,但是该可记录扩展是否有一些选项,而不是插入新版本,作为日志中对象的记录以存储当前版本,在更改发生之前?

0 投票
0 回答
66 浏览

logging - 在可记录字段中注册现有记录的初始命令

我正在使用 Gedmo-Loggable 来监控可记录实体中的用户活动。它工作得很好,但我意识到我的数据库中已经存在的当前值将丢失,当它们被覆盖并且 gedmo 可记录时,只保存输入到数据库的新值。所以我考虑两种选择:

  1. 通过 gedmo-loggable 记录旧值以防止数据丢失
  2. 使用 init 命令在我的数据库中记录现有值

我更喜欢第二种选择,但我必须检查所有实体的可记录字段,并使用受保护的函数 CreateLogEntry 来创建初始日志。这似乎不对。这种方法正确吗?有人处理可记录的实用程序吗?

0 投票
1 回答
1215 浏览

symfony - loggable 不会将任何内容记录到数据库中

在我的 Symfony 项目中,我们想使用 Gedmo/Loggable 插件。

不幸的是,我没有为这个插件找到明确的文档。只是为了完整的 Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle() https://symfony.com/doc/current/bundles/StofDoctrineExtensionsBundle/index.html

我的数据库中有“ext_log_entries”表。但是当我在记录的实体上更改某些内容时,没有条目。

配置.yml:

实体

谁能告诉我,我的错误在哪里?

0 投票
1 回答
152 浏览

php - 如何在 A2lix 中使用 slug?

我不明白如何使用 A2lix 设置 slug。有人可以告诉我可以帮助我的程序或教程吗?这将是非常好的。

我尝试使用@Gedmo\Slug,但我不知道如何将带有 slug 数据的路由放入控制器。

我也尝试过 KnpLabs/DoctrineBehaviors,但没有取得更大的成功

我的配置:

谢谢您的帮助