2017-07-04 4 views
4

私はsymfonyの最後の安定版(3.3.3)をダウンロードし、起動時に私がエラーを持っている:symfonyの3.3.3 - デフォルトコントローラとコンテナ

Attempted to call an undefined method named "getParameter" of class "AppBundle\Controller\DefaultController". 

これは、次のとおりです。3.3前

'base_dir' => realpath($this->getParameter('kernel.project_dir')).DIRECTORY_SEPARATOR, 

symfonyのコントローラは

Symfony\Bundle\FrameworkBundle\Controller\Controller.php

を延長0.3バージョンは今拡張:

Symfony\Bundle\FrameworkBundle\Controller\AbstractController\AbstractController.php

So ...データをコンテナから取得するにはどうすればよいですか?ドキュメント(3.3および4.0バージョン)では、ControllerはAbstractControllerではなくControllerを拡張しています。

AbstractControllerをControllerに変更するとアプリケーションはうまく動作しますが、これを変更する必要がありますか?

+2

で更新しなければならないエラーを修正するには。 AbstractControllerは特定の基本サービスへのアクセスのみを提供します。コンテナへの一般的なアクセスはありません。コントローラをサービスとして定義し、必要な追加サービス/パラメータを注入するという考え方です。マニュアルのオートワイヤーを確認してください。 Symfony 4をターゲットにした大きな変更です。「オリジナル」のベースコントローラクラスを引き続き使用することができ、以前と同じように動作します。また、FrameworkBundle/Controllerコードを見てください。 – Cerad

+0

私は同じ問題があります。セキュリティモジュールと同じ問題は機能しません。私はバージョン3.2.xに戻ります – juanitourquiza

+2

私は新しく生成されたプロジェクトで同じ問題を抱えています。これは、すでに作曲者作成プロジェクトを実行した直後に破られています。 –

答えて

-2

このコマンドで作業バージョンのプロジェクトを作成することができます。 php symfony new project_name 3.3.2 現在のバージョンが壊れています。

2

すでにreverted the changeがsymfonyの標準版にあるので、私はAbstractControllerの代わりにControllerに戻るといいでしょう。

関連する問題