我在该public文件夹下有一个图像.
如何在symfony4中获取我的图像目录?
在symfony 3中,它相当于:
$webPath = $this->get('kernel')->getRootDir() . '/../web/';
Run Code Online (Sandbox Code Playgroud)
got*_*oto 12
你可以使用其中之一
$webPath = $this->get('kernel')->getProjectDir() . '/public/';
Run Code Online (Sandbox Code Playgroud)
或参数 %kernel.project_dir%
$container->getParameter('kernel.project_dir') . '/public/';
Run Code Online (Sandbox Code Playgroud)
小智 8
在控制器中(也继承了 AbstractController):
$projectDir = $this->getParameter('kernel.project_dir');
Run Code Online (Sandbox Code Playgroud)
container如果您不在控制器中,则仅注入整体以访问参数是一种不良做法。ParameterBagInterface像这样自动接线
protected $parameterBag;
public function __construct(ParameterBagInterface $parameterBag)
{
$this->parameterBag = $parameterBag;
}
Run Code Online (Sandbox Code Playgroud)
然后像这样访问您的参数(在本例中为项目目录),
$this->parameterBag->get('kernel.project_dir');
Run Code Online (Sandbox Code Playgroud)
Hope someone will find this helpful.
Cheers.
您可以注入KernelInterface服务或其他任何内容,然后使用以下命令获取项目目录$kernel->getProjectDir():
<?php
namespace App\Service;
use Symfony\Component\HttpKernel\KernelInterface;
class Foo
{
protected $projectDir;
public function __construct(KernelInterface $kernel)
{
$this->projectDir = $kernel->getProjectDir();
}
public function showProjectDir()
{
echo "This is the project directory: " . $this->projectDir;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20577 次 |
| 最近记录: |