Symfony 6控制器外部的依赖注入

4xy9mtcn  于 2023-04-07  发布在  其他
关注(0)|答案(1)|浏览(147)

你好,我试图使用依赖注入控制器外,但我总是有一个错误消息说:函数(...)的参数太少,传入(...)的参数为0,预期参数为1。
下面是我的代码:

<?php

namespace App\Response;

use Psr\Log\LoggerInterface;

class TestResponse
{
  public function __construct(private LoggerInterface $logger)
  {}
}

通常情况下自动装配它应该工作,但在这里没有...我不明白为什么
我试着像在控制器中一样注入依赖项作为参数,但这不起作用。我认为自动装配是可以像在控制器中一样自然实现的,而无需添加新的包来实现
帮帮我🤓

wgeznvg7

wgeznvg71#

我找到解决办法了!我在这里发帖来帮助解决同样的问题
之前我的控制器是这样的:这个块触发了我之前说的错误

#[Route('/test', name: 'test', methods: ['GET'])]
  public function test(): JsonResponse
  {
    $response = new TestResponse();
    return new JsonResponse([]);
  }

我忘记了如何实现服务:这就是如何实现这一点的好方法

#[Route('/test', name: 'test', methods: ['GET'])]
  public function test(TestResponse $response): JsonResponse
  {
    // $response->...
    return new JsonResponse([]);
  }

相关问题