Symfony 4:“Autowire:你应该明确地配置它的值。”
Posted
技术标签:
【中文标题】Symfony 4:“Autowire:你应该明确地配置它的值。”【英文标题】:Symfony 4: "Autowire: you should configure its value explicitly." 【发布时间】:2019-04-05 12:47:46 【问题描述】:我开始使用 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();
感谢您的帮助
【问题讨论】:
【参考方案1】:尝试将自动装配信息设置到 config/services.yaml。喜欢:
#app.myservice.config:
App\Controller\CharacterInformation:
arguments:
$region: "%region%"
检查所有信息到Defining Services Dependencies Automatically (Autowiring)
【讨论】:
我就是这么做的,没有任何改变。我什至试图把它放在 _defaults.bind 部分 嘿@afilina,你看到下面的Karringan回答了吗? 是的。那没有帮助。最后,我发现我的定义服务的 yaml 文件没有被加载,因此字符串 args 没有启动。【参考方案2】:您也可以通过在services.yml
文件中绑定参数来解决此问题。
这里解释得很好https://***.com/a/49084402
# config.yml
parameters:
foo: 'secret'
services:
_defaults:
autowire: true
bind:
$fooKey: '%foo%'
【讨论】:
以上是关于Symfony 4:“Autowire:你应该明确地配置它的值。”的主要内容,如果未能解决你的问题,请参考以下文章
从 Symfony 3.4 迁移到 Symfony 4.4 后,自定义投票器无法按预期工作
Symfony 4.4 - Swift Mailer 安装失败