Symfony 4:“自动装配:您应该显式配置其值。”

时间:2018-11-01 09:53:58

标签: php symfony4

我开始使用Symfony4,尝试运行服务器时遇到以下错误:无法自动装配服务“ App \ Controller \ CharacterInformation”:方法“ __construct()的参数“ $ region” “是带有类型提示的“字符串”,则应显式配置其值。

我如何实例化我的课程:

 /**
 * @Route("/")
 * @return Response
 */
function mainPage() {
    $characterInformation = new CharacterInformation('eu');
    return new Response($characterInformation->getCharacter());
}

CharacterInformation的构造函数:

 /**
 * @var int
 */
public function __construct(string $region) {
        $this->apiInformation = new ApiContent($region);
}

ApiContent的构造函数:

    public function __construct(string $region) {
    $apiToken = new ApiToken($region);
    $this->token = $apiToken->getToken();
    $this->region = $apiToken->getRegion();
}

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

尝试将自动接线信息设置为 config / services.yaml 。喜欢:

#app.myservice.config:
    App\Controller\CharacterInformation:
        arguments:
            $region: "%region%"

将所有信息检入Defining Services Dependencies Automatically (Autowiring)

答案 1 :(得分:0)

谢谢Dmytro的回答,它帮助我找到了解决问题的方法。在services.yaml中,我添加了以下行:

App\Controller\CharacterInformation: '@app.controller'

问题已经解决。