Symfony 4 AbstractController问题与参数计数

问题描述 投票:0回答:1

我正在尝试在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)兼容

symfony symfony4
1个回答
0
投票

AbstractController使用一个接口来定义具有特定数量的参数和返回类型的get()方法。如果您不想覆盖它的get方法(我不建议这样做),您必须编写它以使其与界面中的定义兼容。

http://php.net/manual/en/language.oop5.interfaces.php

© www.soinside.com 2019 - 2024. All rights reserved.