web-dev-qa-db-ja.com

symfony 4:「Autowire:その値を明示的に設定する必要があります。」

Symfony4で作業を開始し、サーバーを実行しようとすると、次のエラーが発生します:サービス「App\Controller\CharacterInformation」を自動接続できません:メソッドの引数「$ region」 __construct() "はタイプヒント付きの" string "であり、その値を明示的に構成する必要があります。

クラスをインスタンス化する方法:

 /**
 * @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();
}

助けてくれてありがとう

6
user10562377

自動配線情報をconfig/services.yamlに設定してみてください。お気に入り:

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

すべての情報をチェックして サービスの依存関係を自動的に定義する(自動配線)

1
Dmytro