Я использую Symfony 4 с VichUploaderBundle 1.9, и мне трудно внедрить службу DownloadHandler
в моем контроллере для отправки файла клиенту.
Я также использую HashidsBundle , чтобы преобразовать мой идентификатор сущности во что-то вроде jFaJ
в моих URL.
Как указано в документации VichUploaderBundle , я внедряю службу в свой контроллер следующим образом:
public function download(Wallpaper $wallpaper, DownloadHandler $downloadHandler)
{
return $downloadHandler->downloadObject($wallpaper->getMedia(), 'uploadedFile');
}
Вот ошибка, которая у меня возникает:
Аргумент 2, передаваемый в App \ Controller \ WallpapersController :: download (), должен быть экземпляром Vich \ UploaderBundle \ Handler \ DownloadHandler, заданного целого числа, вызываемого в / mnt / c / Users / user / Documents/Dev/symfony/vendor/symfony/http-kernel/HttpKernel.php в строке 151
Я также попытался вручную вызвать службу, добавив в свой контроллер следующую строку: $this->get('vich_uploader.download_handler');
Но это все еще не работает, у меня есть эта ошибка сейчас:
Служба "vich_uploader.download_handler" не найдена: даже если она существует в контейнере приложения, контейнер внутри "App \ Controller"\ WallpapersController "- это меньший локатор службы, который знает только о" доктрине "," form.factory "," http_kernel "," parameter_bag "," request_stack "," router "," security.authorization_checker "," security.csrf.token_manager "," security.token_storage "," serializer "," session "и" twig "services.Попробуйте вместо этого использовать внедрение зависимостей.