如何从 Symfony4 控制器获取 `public` 目录
How to get the `public` dir from Symfony4 Controller
我想从 Controller Class SYmfony4
中的函数中获取 public
目录
我试过三种都没有用
print $this->get('kernel')->getProjectDir();
print $container->getParameter('kernel.project_dir');
print $this->appKernel->getProjectDir();
第一个显示的错误信息是这样的,
我想有一些提示......
Service "kernel" not found: even though it exists in the app's container, the container inside "App\Controller\MemberController" is a smaller service locator that only knows about the "doctrine", "form.factory", "http_kernel", "parameter_bag", "request_stack", "router", "security.authorization_checker", "security.csrf.token_manager", "security.token_storage", "serializer", "session" and "twig" services. Unless you need extra laziness, try using dependency injection instead. Otherwise, you need to declare it using "MemberController::getSubscribedServices()".
你很接近。在控制器方法中尝试 AbstractController::getParameter()
:
$this->getParameter('kernel.project_dir') . '/public';
仅供参考 这实际上不是一个好的做法,会增加测试的复杂性。
更好的解决方案是使用依赖注入。
我想从 Controller Class SYmfony4
中的函数中获取public
目录
我试过三种都没有用
print $this->get('kernel')->getProjectDir();
print $container->getParameter('kernel.project_dir');
print $this->appKernel->getProjectDir();
第一个显示的错误信息是这样的, 我想有一些提示......
Service "kernel" not found: even though it exists in the app's container, the container inside "App\Controller\MemberController" is a smaller service locator that only knows about the "doctrine", "form.factory", "http_kernel", "parameter_bag", "request_stack", "router", "security.authorization_checker", "security.csrf.token_manager", "security.token_storage", "serializer", "session" and "twig" services. Unless you need extra laziness, try using dependency injection instead. Otherwise, you need to declare it using "MemberController::getSubscribedServices()".
你很接近。在控制器方法中尝试 AbstractController::getParameter()
:
$this->getParameter('kernel.project_dir') . '/public';
仅供参考 这实际上不是一个好的做法,会增加测试的复杂性。 更好的解决方案是使用依赖注入。