web-dev-qa-db-ja.com

symfony 4:RootDirから「/ public」を取得する方法

publicフォルダーの下に画像があります。
symfony4で画像ディレクトリを取得するにはどうすればよいですか?
symfony 3では、同等のものは次のとおりです。

$webPath = $this->get('kernel')->getRootDir() . '/../web/';
11
Mouna Ben Hmida

どちらでも使用できます

$webPath = $this->get('kernel')->getProjectDir() . '/public/'; 

またはパラメータ%kernel.project_dir%

$container->getParameter('kernel.project_dir') . '/public/';
12
goto

これは悪い習慣ですコントローラーにいなければ、パラメーターにアクセスするためだけにcontainer全体を注入すること。 ParameterBagInterfaceをこのように自動配線するだけで、

protected $parameterBag;

public function __construct(ParameterBagInterface $parameterBag)
{
    $this->parameterBag = $parameterBag;

}

そして、このようなパラメーター(この場合はプロジェクトディレクトリ)にアクセスします。

$this->parameterBag->get('kernel.project_dir');

誰かがこれが役立つことを願っています。

乾杯。

4
Anjana Silva
parameters:
    webDir: '%env(DOCUMENT_ROOT)%'
3
Nexen

コントローラー内(AbstractControllerの継承も含む):

$projectDir = $this->getParameter('kernel.project_dir');
0
godrar