如何在 Symfony 2 的类中获取 Request 对象?

2024-01-22

我在 Symfony 中有一个实现接口的类。我需要 $request 才能有 POST 参数。这是我的功能:

class WebserviceUserProvider implements UserProviderInterface
{
    public function loadUserByUsername($username)
    {
        $salt = "";
        $roles = "";
        // make a call to your webservice here

        .....
    }
...
}

我不能这样做:

public function loadUserByUsername($username, Request $request)

因为我需要实现该接口,并且出现此错误:

FatalErrorException:编译错误:声明 Actas\Gestion\UserBundle\Security\User\WebserviceUserProvider::loadUserByUsername() 必须兼容 Symfony\Component\Security\Core\User\UserProviderInterface::loadUserByUsername($用户名)

如何获取请求参数?这个类是从登录中调用的,我需要它发送的密码才能使用 WebService 来验证用户身份。

预先非常感谢您!

这是我的 Bundle 中的 services.xml:

# src/Actas/Gestion/UserBundle/Resources/config/services.yml
parameters:
    webservice_user_provider.class: Actas\Gestion\UserBundle\Security\User\WebserviceUserProvider

services:
    webservice_user_provider:
        class: "%webservice_user_provider.class%"
        scope: container
        calls:
                - [setServiceContainer , ["@service_container"]]

除了 Czechnology 的答案之外,您还可以使用 setter 方法注入请求。在 services.yml 中添加:

my_service:
    class: Acme\DemoBundle\Service\WebserviceUserProvider
    scope: request
    calls:
        - [setRequest , ["@request"]]

然后像这样声明你的类:

use Symfony\Component\HttpFoundation\Request;

class WebserviceUserProvider implements UserProviderInterface {
    private $request;
    public function setRequest( Request $request ) {

        $this->request = $request;
    }
    // ...
}

如果您遇到范围扩大问题,您还可以尝试注入服务容器并从中获取请求。在服务中声明您的服务如下:

my_service:
class: Acme\DemoBundle\Service\WebserviceUserProvider
calls:
    - [setRequest , ["@service_container"]]

现在只需使用容器来获取请求:

use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpFoundation\Request;

class WebserviceUserProvider implements UserProviderInterface {
    private $request;
    public function setRequest( ContainerInterface $container ) {

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

如何在 Symfony 2 的类中获取 Request 对象? 的相关文章

  • 如何修复 Laravel 中未找到的“PDF”类

    在我的 Laravel 应用程序中遇到以下错误 CollaboPDFController php 第 14 行中的 FatalErrorException 未找到 PDF 类 这是我的ColaboPDFController php
  • PHP cURL 重定向到本地主机

    我正在尝试使用带有 cURL 的 php 脚本登录外部网页 我是 cURL 的新手 所以我觉得我错过了很多东西 我找到了几个例子并修改了它们以允许访问https页面 最终 我的目标是能够登录页面并在登录后通过指定的链接下载 csv 到目前为
  • 如何在node.js中的一定时间后强制解决承诺? [复制]

    这个问题在这里已经有答案了 我正在尝试从其 url 下载大量图像 然后在 Node js 中创建一个 PDF 文件 我正在使用图片下载器 https www npmjs com package image downloader模块下载承诺链
  • 如何使用 php imap 将邮件消息移动到文件夹

    我似乎无法将邮件移至已保存的文件夹 这是我的代码 mbox imap open mail server mail port mail folder mail username mail password or die Error openi
  • 在 Drupal 中选择性地删除页面的样式表

    我正在尝试为首页制作不同的布局 在此过程中 我声明了名为 front page css 和 page front tpl php 的新样式表 我正在使用加载responsive sidebar css 的 Zen 子主题 我想删除 resp
  • 从目录中读取所有文件内容 - php

    这实际上是一个简单的任务 我想显示指定文件夹中所有文件的内容 我正在传递目录名称 echo a href row qname a 在第二页上 我正在迭代目录内容 while entryname readdir myDirectory if
  • php exec 返回的结果比直接进入命令行要少

    我有一个 exec 命令 它的行为与通过 Penguinet 给 linux 的相同命令不同 res exec cd mnt mydirectory zcat log file gz echo res 当将命令直接放入命令行时 我在日志文件
  • 如何在 Laravel 5 中的视图模板上显示会话数据

    我正在尝试在 Laravel 5 中的视图模板上显示会话数据 但是它似乎没有显示任何内容 这是我用来设置会话的代码 Session set bookingConfirmed BookingDates where id Session get
  • 同一路由组的多个前缀

    我正在为一所学校编写一个相当简单的网站 该网站有新闻 文章 视频剪辑 等 它的工作方式是在主页中我们向访问者展示一些课程 例如 gt math gt geography gt chemistry 用户在其中选择 1 网站内容会根据用户的选择
  • 使用 DateTime 类计算日期差异时出错

    我正在尝试使用 DateTime 类 php gt 5 3 来计算 2 个日期的差异 手册中的示例简单明了 我尝试了该示例并且效果很好 但如果改变开始和结束日期 就会出现问题 this gt start date 2011 03 01 th
  • PHP 中的抽象类是什么?

    PHP 中的抽象类是什么 如何使用 抽象类是至少包含一个抽象方法的类 该方法中没有任何实际代码 只有名称和参数 并且已被标记为 抽象 这样做的目的是提供一种模板来继承并强制继承类实现抽象方法 因此 抽象类是介于常规类和纯接口之间的东西 此外
  • PHP 和 MySQL 的重音字符错误

    我的问题是 直接通过 PHP 编写的内容是正确重音的 但是当重音单词来自 MySQL 时 字母会像这样 我尝试使用html charset as ISO 8859 1它修复了 MySQL 字母 但破坏了其他字母 解决这一切的一种方法是设置我
  • 如何在 WordPress/WooCommerce 3+ 中向评论表单添加自定义字段

    我正在尝试在产品评论中添加 电话 字段 WooCommerce 3 针对未注册用户 来宾 电话号码只能由管理员在管理面板中看到 电话字段需要填写 Required 我尝试了这段代码 但这不起作用 function true phone nu
  • 如何缓存 twitter api 结果?

    我想缓存 twitter api 结果的结果并将其显示给用户 缓存结果的最佳方法是什么 我正在考虑根据时间限制将结果写入文件 可以吗 还是应该使用任何其他方法 最重要的是 理想的缓存时间是多少 我想显示来自 twitter 的最新内容 但
  • PHP函数返回值到html标签

    我想获取函数的返回值并将其显示到特定的id 在我的 Class php 中 我有一个名为 login 的函数 用于验证密码是否正确 不正确
  • phpstorm xdebug 与 symfony2 项目

    我正在尝试使用 xdebug 和 phpstorm 调试 symfony2 应用程序 我的本地开发环境是Ubuntu 14 04 with apache2 Xdebug版本是2 2 7 我在另一个 php 不是 symfony2 项目上使用
  • Heredoc:常用的“EOT”实际上是什么意思?

    PHP s 定界例子 http www php net manual en language types string php language types string syntax heredoc似乎总是使用 EOT 有时是 EOD 作
  • 如何在 PHP >= 5.3 严格模式下向对象添加属性而不产生错误

    这必须很简单 但我似乎找不到答案 我有一个通用的 stdClass 对象 foo没有属性 我想添加一个新属性 bar尚未定义 如果我这样做 foo new StdClass foo gt bar 1234 严格模式下的 PHP 会抱怨 将属
  • PHP 中的坏词过滤器?

    我正在用 PHP 编写一个坏词过滤器 我在数组中有一个坏词列表 方法 clean text 的写法如下 public static function cleanse text originalstring if self is sorted
  • 在 PHP 命令行上显示完整的堆栈跟踪

    Problem 我的 PHP 堆栈跟踪缩写为 Stack trace 0 www html table app create php 128 SoapClient gt call call Array 1 www html table ap

随机推荐

  • 如何在我的 Angular 指令 Bower 包中使用单独的模板?

    因此 我创建了一大堆指令 想要在许多项目中使用它们 因此我将其转换为 Bower 包并将其包含在我的一个项目中 不幸的是 这些指令不起作用 因为 templateUrl 路径不正确 templateUrls 基于与指令 js 位于同一目录中
  • 通过 JSch shell 通道向服务器发送命令

    我不知道如何通过 JSch shell 通道发送命令 我这样做 但它不起作用 JSch shell new JSch String command cd home s src Session session shell getSession
  • Kubernetes 作业失败,没有日志,没有终止原因,没有事件

    我连夜在 Kubernetes 中运行了一个作业 当我早上检查时 它失败了 通常 我会检查 Pod 日志或事件以确定原因 但是 该 Pod 已被删除并且没有任何事件 kubectl describe job topics etl names
  • 如何在python中打印包含引号的字符串

    我想在 python 中打印引号 是否可以打印一个 用Python或任何其他语言 我试过print Here a b没有用 因为它给出了不适当的语法错误 a 3 b cd print 有以下几种方法 一起使用单引号和双引号 允许您以单引号开
  • 寻找数据帧值的范围

    我有 2 个数据框 gt access V1 V2 V3 1 chr10 136122 136533 2 chr10 179432 179769 3 chr10 182988 183371 4 chr10 224234 224489 5 c
  • 是否可以以编程方式重新打开通过“输入文件”按钮选择的文件

    在我的网络应用程序中 用户通过 输入文件 按钮选择一个大的 zip 文件 然后该文件作为 blob 返回 请参阅快照 zipfile1 然后程序逐个读取 zip 文件的块 单个文件 测试程序按顺序读取所有文件 然后多次重复该序列 这可以通过
  • 停止在 Scala 中处理地图

    在下面的代码中 如果元素 2 我需要停止处理地图 val seq Seq 1 2 3 seq map x gt if x 2 stop processing the map 这可能吗 你不能这样做map 直接作为map 旨在处理整个集合 但
  • 如何使用单个 re.sub 删除数字之间的多个空格

    我想使用单个 re sub 删除数字之间的空格 使用以下命令 import re print re sub 0 9 0 9 1 2 str 11 222 print re sub 0 9 0 9 1 2 str 11 222 33 prin
  • 无法通过 RPC 获取接近协议事务状态

    给定一笔交易https explorer near org transactions JBb2DDe3i1CtBwESisLuhxXkWVZpCKYL4J1AdYwAQPsQ https explorer near org transact
  • 在Windows上使用GCC(MinGW)编译OpenGL

    我在谷歌上搜索过 但没能找到解决方案 我想使用 GCC 编译一些 OpenGL 编程 在 GCC 的 GL 文件夹中 我有以下标头 gl h glext h glu h 然后在我的 system32 文件中我有以下 dll opengl32
  • PHP fwrite 新行

    我正在尝试将用户名和密码写入 txt 文件中的新行 txt 文件中的输出应该与此类似 我知道这不是很安全 但仅用于学习目的 Sebastian password John hfsjaijn 这就是我到目前为止所拥有的 if isset GE
  • 合并运算符 - 用法(c#)[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我看到越来越多的代码片段以一种 无论
  • jquery 转换日期格式

    我需要以 2014 11 04 格式将日期显示为 yy mm dd 目前 我的脚本仍然显示 2014 年 11 月 4 日星期二 00 00 00 GMT 0200 埃及标准时间 document ready function var us
  • 如何修复 C# 中的“IDX20804:无法从以下位置检索文档:‘[PII 已隐藏]’”错误

    尝试获取访问令牌以在我的 WebApi 中使用 MS Graph 但不断出现这个错误 TaskCanceledException 任务已取消 System Runtime CompilerServices TaskAwaiter Throw
  • ggplot2 - x 轴上的上标刻度文本

    我试图让 x 轴上两个变量的文本具有上标 我希望 成为上标 但无论我尝试什么 它最终都会显示整个代码 我尝试为它制作单独的标签 并尝试使其更简单 test labs as labeller c CD4Gated CD4 cells CD8G
  • 4和@4有什么区别?

    我刚刚开始学习这个 教程开始时在所有数字文字和字符串文字之前使用 符号 我想 好吧 Objective C 在文字之前使用 符号 但接下来你知道他们使用了一些数字without 符号和我完全不知所措 我说 数字 是因为我不敢说 int 因为
  • TypeDescriptor.AddAttributes() 替换当前属性而不是添加它

    我有这部分代码 var hasAttribute TypeDescriptor GetAttributes property DeclaringType OfType
  • 将代码从 Bot Framework V3 迁移到 V4

    我在将对话框从 V3 迁移到 V4 时遇到更多问题 下面是我们的代码 在 v3 中 我们使用 Microsoft Bot Builder Dialogs Conversation SendAsync conversationContext
  • 如何强制标签适合维恩图?

    我使用 VennDiagram 制作维恩图 示例代码如下 library VennDiagram venn diagram list shams 90d 1 3 shams 90d 4h 2 4 sham3 shams 90d 3 5 sh
  • 如何在 Symfony 2 的类中获取 Request 对象?

    我在 Symfony 中有一个实现接口的类 我需要 request 才能有 POST 参数 这是我的功能 class WebserviceUserProvider implements UserProviderInterface publi