【发布时间】:2018-09-13 18:57:17
【问题描述】:
我正在尝试在 Symfony 4 中编写 API。在尝试将 DependencyInjection 用于我创建的服务 API 类时,我的控制器方法遇到了问题。我尝试了几种不同的方法来编写代码,但无法弄清楚。
https://symfony.com/doc/current/components/dependency_injection.html
我可以创建一个 getNext()(而不是下面的 get())方法,代码将按预期运行,但如果我尝试使用 get() 方法,我会收到错误消息。这些是涉及的基本类。大部分代码已被删除。
class AppointmentController extends AbstractController
{
/**
* @Route("/appointment/getNext", name="appointment/getNext")
*
*/
public function get(string $id = null, CernerFhir $fhirApi)
{
$request = Request::createFromGlobals();
...more code...
}
}
class CernerFhir
{
public function __construct(LoggerInterface $logger, ParameterBagInterface $params)
{
$this->logger = $logger;
$this->params = $params;
}
}
}
警告:App\Controller\AppointmentController::get(?string $id, App\Service\CernerFhir $fhirApi) 的声明应该与 Symfony\Bundle\FrameworkBundle\Controller\AbstractController::get(string $id) 兼容
【问题讨论】:
-
该错误是因为 AbstractController 已经有一个名为 get 的方法。虽然与您的问题没有直接关系,但无需在控制器操作内创建请求对象。只需注入它。
-
如上所述 - 您选择了一个已经存在的方法名称。