Как получить `public` dir от Symfony4 Controller - PullRequest
0 голосов
/ 28 июня 2019

Я хочу получить public dir из функции в классе контроллера SYmfony4

Я пробовал три типа, но тщетно.

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()".

1 Ответ

2 голосов
/ 28 июня 2019

Ты был близко. Попробуйте AbstractController::getParameter() в методе вашего контроллера:

$this->getParameter('kernel.project_dir') . '/public';

К вашему сведению на самом деле это не очень хорошая практика и повышает сложность тестирования. Лучшее решение - внедрение зависимостей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...