小编pat*_*853的帖子

如何在 Symfony 5.3 的控制器中获取 Session 对象?

我对在 Symfony 5.3 中的控制器中检索当前会话对象的“正确”方法有点困惑。当前文档说将参数键入为SessionInterface。然而,这篇Symfony 博客文章表示SessionInterface已弃用,转而使用RequestStack.

在服务中,很明显我应该注入RequestStack并调用$requestStack->getSession(). 然而,在大多数控制器方法中,我已经注入了Request对象,该对象也有一个getSession()似乎可以工作的方法。

是否可以从Request对象获取会话,或者我应该在控制器方法中注入RequestStackRequest感觉几乎是重复)


一个快速的代码示例:

// in a controller
public function myRoute(Request $request): Response
{
    $session = $request->getSession(); // this works
}

// seems silly to also inject RequestStack when I already have Request
public function myRoute(Request $request, RequestStack $requestStack): Response
{
    $reqestStack->getSession(); // this works
}

// the way current …
Run Code Online (Sandbox Code Playgroud)

php symfony symfony5

7
推荐指数
1
解决办法
2124
查看次数

连接子句中的 Oracle Invalid Number

我收到一个Invalid Number对我来说没有意义的 Oracle错误。我明白这个错误意味着什么,但在这种情况下不应该发生。抱歉问了这么长的问题,但请耐心等待,这样我才能彻底解释这一点。

我有一个表,用于存储不同来源的 ID,其中一些 ID 可以包含字母。因此,该列是一个VARCHAR.

其中一个来源有数字 ID,我想加入该来源:

SELECT *
FROM (
    SELECT AGGPROJ_ID -- this column is a VARCHAR
    FROM AGG_MATCHES -- this is the table storing the matches
    WHERE AGGSRC = 'source_a'
) m
JOIN SOURCE_A a ON a.ID = TO_NUMBER(m.AGGPROJ_ID);
Run Code Online (Sandbox Code Playgroud)

在大多数情况下,这是有效的,但取决于随机因素,例如 select 子句中的列,如果它使用左联接或内联接等,我将开始看到Invalid Number错误。

我已经多次验证AGG_MATCHESwhere中的所有条目AGGSRC = 'source_a'都不包含AGGPROJ_ID列中的非数字字符:

-- this returns no results
SELECT AGGPROJ_ID
FROM AGG_MATCHES
WHERE AGGSRC = 'source_a' AND REGEXP_LIKE(AGGPROJ_ID, …
Run Code Online (Sandbox Code Playgroud)

sql oracle oracle12c

4
推荐指数
1
解决办法
2385
查看次数

在 Windows 10 和 WSL2 之间共享 Git 和 SSH 配置

我在 Windows 10 上安装了 Putty 和 Git,并且还在 Ubuntu 20.04 LTS 中使用 WSL2。有时我想使用 WSL2 中的 SSH 和 Git,其他时候则想在 Windows 中使用。一切工作正常,除了我必须在 Windows 和 WSL2 主目录中复制.gitconfig,.gitignore和文件。.ssh

我不想在两个地方维护这个配置,所以我想我可以在 WSL2 中对文件进行符号链接:

# In /home/myuser on WSL2
ln -s /mnt/c/Users/myuser/.ssh
ln -s /mnt/c/Users/myuser/.gitconfig
ln -s /mnt/c/Users/myuser/.gitignore
Run Code Online (Sandbox Code Playgroud)

除了一些问题之外,这种方法是有效的。

  1. 中的文件/mnt/c具有0777权限,chmod显然不会对它们执行任何操作。当我ssh在 WSL2 中使用时,它抱怨密钥:Permissions 0777 for '/home/myuser/.ssh/id_rsa' are too open
  2. .gitconfig我中core.excludesfile设置为C:\\\\Users\\myuser\\.gitignore,它在 Windows 中使用 Git 时有效,但在 WSL2 中无效。如果我将其更改为/home/myuser/.gitignore它可以在 WSL2 …

git putty windows-10 windows-subsystem-for-linux git-for-windows

4
推荐指数
1
解决办法
2325
查看次数