将SecurityContext注入Symfony2中的监听器prePersist或preUpdate以获取createBy或updatedBy中的User会导致循环引用错误

2024-01-07

我设置了一个侦听器类,在其中我将在任何 prePersist 学说上设置 Ownerid 列。我的 services.yml 文件看起来像这样......

services:
my.listener:
    class: App\SharedBundle\Listener\EntityListener
    arguments: ["@security.context"]
    tags:
        - { name: doctrine.event_listener, event: prePersist }

我的班级看起来像这样......

use Doctrine\ORM\Event\LifecycleEventArgs;
use Symfony\Component\Security\Core\SecurityContextInterface;

class EntityListener
{

protected $securityContext;

public function __construct(SecurityContextInterface $securityContext)
{
    $this->securityContext = $securityContext;
}


/**
 *
 * @param LifecycleEventArgs $args 
 */
public function prePersist(LifecycleEventArgs $args)
{

    $entity = $args->getEntity();
    $entityManager = $args->getEntityManager();

    $entity->setCreatedby();

}
}

其结果是以下错误。

ServiceCircularReferenceException:检测到服务“doctrine.orm.default_entity_manager”的循环引用,路径:“doctrine.orm.default_entity_manager -> Doctrine.dbal.default_connection -> my.listener -> security.context -> security.authentication.manager -> fos_user .user_manager”。

我的假设是安全上下文已经被注入到链中的某个位置,但我不知道如何访问它。有任何想法吗?


我遇到了类似的问题,唯一的解决方法是在构造函数中传递整个容器(arguments: ['@service_container']).

use Doctrine\ORM\Event\LifecycleEventArgs;
use Symfony\Component\DependencyInjection\ContainerInterface;

class MyListener
{
    protected $container;

    public function __construct(ContainerInterface $container)
    {
        $this->container = $container;
    }

    // ...

    public function prePersist(LifeCycleEventArgs $args)
    {
        $securityContext = $this->container->get('security.context');

        // ...
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将SecurityContext注入Symfony2中的监听器prePersist或preUpdate以获取createBy或updatedBy中的User会导致循环引用错误 的相关文章

  • 在 PHP 数组定义中显示重复键警告

    下面的代码是否可以得到警告 error reporting E ALL s array a gt 1 a gt 1 var export s 你唯一的希望 除了count 你自己 是你的编辑足够聪明 可以突出显示拼写错误 此屏幕截图来自 P
  • 电子商务是否从头开始

    我需要开发一个包含电子商务部分的新网站 我来这里是想从你那里得到一些关于我应该走哪条路的提示 该网站将有一个静态部分 其中包括一些静态页面和用于销售产品的电子商务部分 我是 Django 和 PHP 开发人员 但这是我第一次需要开发电子商务
  • Magento:如何在 CMS 页面中包含 php 调用

    按照此页面的说明进行操作 http www magento cc how to use php on a cms page html http www magento cc how to use php on a cms page html
  • 是否可以在 UML 中可视化一堆函数

    我正在改进一个使用类和函数文件 只是包含各种函数的 php 文件 的内容管理系统 例如 我有一堂课叫Admin以及一个功能文件 其功能包括显示管理员概述 创建新管理员 编辑现有管理员 删除管理员 函数文件使用类并执行 mvc 概念的可视化部
  • Facebook“赞”按钮回调帮助

    我正在使用此代码进行类似 facebook 的回调 问题是 如果我调用 php 脚本 例如 有人可以看到我的 javascript 并运行此页面 甚至可以向其发送垃圾邮件或在没有先点赞的情况下使用它 我的想法是 我想为每个喜欢该页面的用户提
  • 在 CodeIgniter 中添加新页面

    对于我对 CodeIgniter 和 MVC 系统的无知 我提前表示歉意 我正在帮助一位家庭成员处理他们的商业网站 到目前为止 我已经能够仅通过逻辑来完成大部分所需的更改 但现在我已经走进了死胡同 我不打算继续支持他们 因为我显然不是 Co
  • 如何使用 php DOM 获取 内的值?

    我如何使用 php DOM 获取 内的值 这是我的 xml 中的一些代码
  • CryptoJS 使用密码加密 AES,但 PHP 解密需要密钥

    我在用CryptoJS https code google com p crypto js AES加密字符串 function doHash msg msg String msg var passphrase aggourakia var
  • 在另一个文件中扩展类的正确方法是什么?

    这就是我在 foo php 中的内容 class Foo public foo NULL public foo2 NULL public function setFoo foo foo2 this gt foo foo this gt fo
  • 使用第三方库记录来自 PHP 应用程序的所有 cURL 请求

    好吧 我的 PHP Yii2 应用程序遇到了困难 我需要记录来自应用程序的每个传入和传出请求 传入的请求可以轻松地记录在 PHP 本身中 在引导阶段添加一些处理程序 这很容易 但真正的问题是我正在使用许多第三方库 即 Amazon MWS
  • Zend RegEx Validator 的自定义有意义的错误消息

    我正在验证表单中的文本字段 如下所示 name new Zend Form Element Text name name gt setLabel First Name gt setRequired true gt addFilter new
  • 错误 #520009 - 帐户受到限制

    我收到 520009 错误 帐户 电子邮件受保护 cdn cgi l email protection被限制 当尝试进行并行付款时 我的代码使用沙箱运行良好 但我切换到实时端点 它开始失败 有问题的帐户是有效的 PayPal 帐户 我使用的
  • 当路由不存在时重定向 laravel 4

    我正在使用 laravel 4 当我的项目处于生产模式时 我得到 抱歉 找不到您要查找的页面 当我到达一条不存在的路线时 当我 grep 我的代码时 它在两个地方找到 vendor symfony debug Symfony Compone
  • 细胞的 fpdf 对齐

    我正在尝试使用生成 PDFfpdf我有一个小问题 我需要有 2 个单元格 如下所示 Address Line 1 Version Address Line 2 1 0 City 06 05 2011 我尝试过使用MultiCell 但没有运
  • Lumen:无法打开流:.../vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:107 中的权限被拒绝

    My OS is ubuntu 16 04 and I am running Lumen 5 5 When I try to run the app in the browser I get an error 500 我在 var log
  • 自定义 WordPress 画廊 html 布局

    当使用默认媒体上传器在 WordPress 中创建图像库时 WordPress 将图像包装在一堆 HTML 标记中 如何在生成之前覆盖它 以便我可以输出所需的标记并更改创建图库布局的方式 目前 WordPress 生成的代码如下 div d
  • 将 echo 和 print 合并到一个语句中

    echo 1 print 2 3 返回 214 脚本如何以 14 结尾 当你这样做时 echo 1 print 2 3 PHP 会做 demo http codepad viper 7 com OfrNrs line op fetch ex
  • PHP date() 和 strtotime() 返回错误的月份 31 日

    我在用着date and strtotime 函数在下拉列表中显示接下来的 3 个月 PHP代码 echo date m Y strtotime 0 months echo date m Y strtotime 1 months echo
  • 动态更改 FOSUserBundle 的服务参数值

    我问的是对 FOSUserBundle 使用多个实体管理器 https stackoverflow com questions 14475180 multiple entity manager for fosuserbundle之前 事实证
  • 如何统计订单总价?

    我有这些表 Orders id status user id address id 1 await 1 1 products id name price quantity 1 test1 100 5 2 test2 50 5 order p

随机推荐

  • 如何更改内容类型 Python

    我想将文件上传到远程设备 如果我查找与wireshark的连接 我会得到这个 POST saveRestore htm cgi HTTP 1 1 Host 10 128 115 214 User Agent Mozilla 5 0 X11
  • Elmah 没有记录 HttpRequestValidationException

    在我的 ASP NET MVC2 应用程序中 Elmah 无法记录任何HttpRequestValidationException 除非您通过远程桌面登录网络服务器并以本地主机身份浏览该网站 例如 如果我输入 39使用我获得的域名从我的电脑
  • 不包含引号但可以包含转义引号的正则表达式

    我正在寻找一个正则表达式来匹配一个字符串 该字符串可以包含除单引号之外的任何内容 但如果引号被转义 则应该匹配 本质上 我想匹配字符串 Tuco and Tuco ABC 但不是 Tuco 看起来下面的内容与引号不匹配 但无法匹配引号 什么
  • 引起原因:java.sql.SQLException:找不到jdbc的合适驱动程序:mysql://localhost:3306/domain

    你好我正在使用以下 hibernate core 4 1 2 Final jar mysql connector 5 1 6 jar 两者都可以在我的项目 lib 目录中找到 我有以下内容休眠 cg xml配置
  • Azure 持久实体,用于存储运行之间的函数应用程序状态 (.net 6)

    我想每分钟运行一个简单的 net 6 c 消耗 azure 函数应用程序 不持久 但我需要记住上次运行的状态 状态由 json 可序列化对象的数组和一些访问令牌字符串组成 所以我创建了一个像这样的持久功能实体 JsonObject Memb
  • 如何向接口添加委托 C#

    我的班上需要有一些代表 我想使用该界面来 提醒 我设置这些委托 How to 我的班级是这样的 public class ClsPictures myInterface Implementing the IProcess interface
  • 如何刷新天气层?

    有谁知道是否有办法刷新 Google 地图 javascript API 中的天气层 为了提供一些背景知识 我们有一个应用程序 它在浏览器中保持打开状态 并每隔几分钟更新地图上的一些信息 我们让用户在地图上打开天气图层 但天气仅在创建图层时
  • 如何在android中测试应用内订阅

    我已成功将应用内购买 api v3 集成到我现有的应用程序中 我还在 google play 中创建了应用程序订阅 并在代码中添加了订阅 ID 在 Google 开发者网站中 我读到要测试应用程序购买 我们需要在 设置 部分添加电子邮件 I
  • 无需连接WiFi即可获取MAC地址

    是否可以在未实际连接的情况下获取 WiFi MAC 地址 假设我有 Android 设备 A 我已经打开了 WiFi 因此我的 Android 设备现在能够检测到附近广播的 WiFi SSID 我附近有一些广播的 WiFi SSID 如下所
  • 遍历范围,将字符串附加到每个范围

    我在 Google 表格 activerange 中选择了一系列单元格 我想迭代该范围内的每个单元格 并在末尾添加一个字符串 该字符串始终相同 并且可以硬编码到函数中 这似乎是一件非常简单的事情 但我已经搞乱了代码一个小时了 但无法发生任何
  • 以有限度数旋转表盘

    All 我想要以特定角度旋转图像 如下图所示 我有旋转代码 但它旋转 360 度 但我只想要特定的度数 并获取表盘上侧的选定数字 下面是我的代码 我的自定义视图工作正常 但性能不佳 import android content Contex
  • 在更新值时扩展 numpy 数组

    我有一个具有形状的 numpy 数组 1 m 和每个条目 n 是0 9之间的整数 我想创建一个具有形状的新矩阵 m 10 其中 除了第 n 列为 1 之外 所有条目均为 0 例如 2 3 1 gt 0 0 1 0 0 0 0 1 0 1 0
  • 更改winform应用程序中所有表单的背景颜色

    我有像这样的基本表单类 它继承自类 public partial class BaseForm Form protected override void OnLoad EventArgs e Color colBackColor Prope
  • 如何在 CIL 中声明值类型:`.class value` 还是只是 `.class`?

    我看过 C struct FooStruct in ILDASM http msdn microsoft com en us library f7dy01k1 aspx 并看到以下内容 ILDASM 此处显示两个不同的声明 一个开始于 cl
  • 如何从 Router 组件以外的组件访问路由参数

    在 React router 1 0 2 0 中 可以通过以下方式访问路由参数 this props params来自 Route 组件 但似乎没有受支持的方法来从上述 Route 组件中深层包含的组件访问参数 可以通过以下方式访问数据类型
  • 在 Typescript 中重新导出类

    我在两个文件中有两个类 a ts export class A b ts export class B 我如何构建文件c ts我可以从中导入这两个类 import A B from c 代替 import A from a import B
  • 直接调用和通过 shell 脚本调用时的“echo -e”

    我发觉到echo直接调用时的行为略有不同 root echo line1 nline2 当通过脚本调用时 bin sh echo line1 nline2 第一个案例将打印 line1 nline2 而后者会打印 line1 line2 S
  • 如何删除以子字符串结尾且超过N天的文件

    我想要delete早于以下时间的无扩展名文件7名字结尾为的日子 C 示例文件 B C A1 C B C A2 C B C A3 A test txt My code SET mypath cd downloads ForFiles p my
  • 查找 xpath 开头的 webelement

    我正在尝试使用 Selenium Webdriver 查找链接 我不想通过链接文本找到它 只想通过输入的实际链接来找到它 这可以通过使用 Selenium 的 find element by xpath 方法来完成 但是当我只知道该 hre
  • 将SecurityContext注入Symfony2中的监听器prePersist或preUpdate以获取createBy或updatedBy中的User会导致循环引用错误

    我设置了一个侦听器类 在其中我将在任何 prePersist 学说上设置 Ownerid 列 我的 services yml 文件看起来像这样 services my listener class App SharedBundle List