当前位置: 首页 > 知识库问答 >
问题:

Symfony 4会话正在使用中

严宏朗
2023-03-14

我试图在我的自定义服务中使用会话变量。

我已经设置添加以下行services.yaml

MySession:
    class: App\Services\SessionTest
    arguments: ['@session', '@service_container']

我的会期考试是这样的

namespace App\Services;

use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Component\HttpFoundation\Request;

class SessionTest
{
    public $session;

    public function __construct()
    {

    }
    public function index()
    {
        echo "<pre>";
        var_dump($this->session);
        echo "</pre>";
    }
}

并收到此错误:函数App\Services\SessionTest的参数太少::_construct(),在第33行的/var/www/App.dev/src/Controller/OrdersController.php中传递了0,预期正好是1

共有1个答案

罗华翰
2023-03-14

您正在配置中使用构造函数注入,但看起来您正在尝试在TestSession中接受属性注入。

容器将使用如下代码生成:

newsessiontest(SessionInterface$session,containterface$container)

因此,您需要更改TestSession以接受'@session''@service\u container'作为构造函数参数:

protected $session;
protected $serviceContainer;

public function __construct(SessionInterface $session, ContainterInterface $serviceContainer)
{
    $this->sessions = $session;
    $this->serviceContainer = $container;
}

或者您需要将配置更改为以下内容:

MySession:
    class: App\Services\SessionTest
    properties:
        session: '@session'
        serviceContainer: '@service_container'

您还需要添加

   public $serviceContainer;

如果要将服务容器作为属性注入,请转到TestSession

 类似资料:
  • 问题内容: 我需要帮助来了解Web应用程序的会话概念。我正在使用Express 3.0运行Node.js服务器。 我的目标是: 为每个登录的用户创建一个会话 存储此会话,并将其用于验证用户是否已登录(防止同时使用同一用户的两个设备)并限制对某些页面的访问(通过将会话ID与其他数据匹配) 我将使用MemoryStore保存会话(似乎最简单)。如果上述目标有意义,您能否提供有关如何实现这些目标的详尽解

  • 我已经在Codeigniter上编写了一个简单的身份验证过程,但存在一个问题。 由于某些原因,当用户浏览站点时,会话会被混淆,并模拟另一个随机用户。 我只是做: 我通过

  • 但这不起作用,当我进入“loginriuscito.jsp”时,我只看到“welcome:”

  • 中描述的声明性基和ORM映射函数 映射器配置 是ORM的主要配置接口。配置映射后,持久性操作的主要使用接口是 Session . 会话基础 会议的作用是什么? 使用会话的基础知识 打开和关闭会话 构建begin/commit/rollback块 使用sessionmaker 查询(1.x样式) 查询(2.0样式) 添加新项目或现有项目 删除 冲洗 过期/刷新 使用任意WHERE子句更新和删除 自动

  • 我读了很多关于JWT的书,以及如何通过JWT创建“无状态”会话。我理解的要点是因为签名 我不明白的是,如果您的用户需要注销,或者您需要在过期之前使会话无效,会发生什么情况? 从技术上讲,您可以指示浏览器从客户端删除它,但您不能确定这是否真的发生了。令牌本身在技术上仍然有效,如果没有遵循您的删除说明,它仍然可以使用。 这种理解正确吗?如果是这样,这难道不是客户端会话管理的一个巨大错误吗?除了让服务器

  • 我将https://github.com/apache/spark/blob/master/examples/src/main/scala/org/apache/spark/examples/ml/RandomForestClassifierExample.scala复制到一个新项目中并设置了一个build.sbt 我能够从IntelliJ 2016.2.5构建它,但是当我得到错误时我 我甚至可以