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

Symfony 5.4及以上版本中getDoctrine()的新替代品

佘缪文
2023-03-14

正如我的IDE指出的那样,AbstractController::getDoctrine()方法现在已经被弃用。

无论是在官方文档中还是在Github变更日志中,我都没有找到任何关于这种反对的参考。

这条捷径的新替代方案或变通方法是什么?

共有2个答案

徐瀚
2023-03-14

您可以使用entityManager接口$entityManager:

public function delete(Request $request, Test $test, EntityManagerInterface $entityManager): Response
{
    if ($this->isCsrfTokenValid('delete'.$test->getId(), $request->request->get('_token'))) {
        $entityManager->remove($test);
        $entityManager->flush();
    }

    return $this->redirectToRoute('test_index', [], Response::HTTP_SEE_OTHER);
}
苏伟志
2023-03-14

正如这里提到的:

不要使用这些快捷方式,而是将相关服务注入构造函数或控制器方法中。

您需要使用依赖注入。

对于给定的控制器,只需在控制器的构造函数上注入ManagerRegistry

class SomeController {

    public function __construct(private ManagerRegistry $doctrine) {}

    public function someAction(Request $request) {
        // access Doctrine
        $this->doctrine;
    }
} 
 类似资料:
  • 我正在尝试从默认的android迁移到AppCompat-22.1中包含的新的android。到目前为止,我只需要导入包就可以使用它。 但我该怎么做呢?例如,更改正/负按钮颜色、标题颜色、消息颜色和背景颜色?

  • 对于我的一个将相机预览保存到缓冲区的应用程序,我使用函数Mediacodec。createInputSurface()和一切工作正常,因为我使用的是API 19及以上版本。现在,我希望相同的代码适用于api 17及以下版本,也适用于其他一些不存在此api的设备。有人能告诉我我可以用什么替代方案吗? 下面是我的一段代码: 谢谢你的帮助。

  • 我正在尝试在我的应用程序中实现通话录音,但由于受限权限CAPTURE_AUDIO_OUTPUT(只能授予系统应用程序),我无法录制其他人的音频。我在Play store Cube ACR上找到了一个应用程序,可以清楚地录制双方的音频。如果谷歌禁用了通话录音,那么它如何录制通话。有什么解决方法可以记录我缺失的通话吗?

  • 我想阅读Android4.2及以上版本的APN设置。我在参考链接上找到的最佳答案是什么时候 它适用于大多数拥有OS4.2及以上操作系统的android手机。但大多数三星设备都不起作用。有没有其他方法来确定默认APN设置?

  • 我想开发一个部署目标为iOS 6.0的应用程序。如果我只使用Swift,它会工作吗?还是我也需要编写Objective-C代码?

  • 我已经安装了R 3.3.3,现在尝试将其更新到3.4.1版本。使用了以下说明: sudo-H gedit/etc/apt/sources . list deb http://cran.rstudio.com/bin/linux/ubuntu precise/sudo apt-get更新sudo apt-get安装r-base 毕竟,安装的版本仍然是R3.3.3。 还尝试从usr/local/bin