我对在 Symfony 5.3 中的控制器中检索当前会话对象的“正确”方法有点困惑。当前文档说将参数键入为SessionInterface。然而,这篇Symfony 博客文章表示SessionInterface已弃用,转而使用RequestStack.
在服务中,很明显我应该注入RequestStack并调用$requestStack->getSession(). 然而,在大多数控制器方法中,我已经注入了Request对象,该对象也有一个getSession()似乎可以工作的方法。
是否可以从Request对象获取会话,或者我应该在控制器方法中注入RequestStack(Request这感觉几乎是重复)
一个快速的代码示例:
// 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) 我收到一个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) 我在 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)
除了一些问题之外,这种方法是有效的。
/mnt/c具有0777权限,chmod显然不会对它们执行任何操作。当我ssh在 WSL2 中使用时,它抱怨密钥:Permissions 0777 for '/home/myuser/.ssh/id_rsa' are too open.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