Я использую Symfony 3.4.8 и пытаюсь создать форму для загрузки файла. Я выполнил точные шаги Symfony , но получил ошибку:
Controller "AppBundle\Report::uploadReport()" requires that you provide a value for the "$fileUploader" argument. Either the argument is nullable and no null value has been provided, no default value has been provided or because there is a non optional argument after this one.
Вот часть моего кода, остальные - то же самое из документа, за исключением того, что я изменил имя класса. Ясно, что когда вызывается функция, в функцию не передается аргумент FileUploader
. Если я уберу аргумент FileUploader $fileUploader
, страница может загрузиться без исключения, но файл не будет получен. Я новичок в Symfony, как я могу решить эту проблему?
/**
* @Route("/report/create-report/upload/", name="report_create")
*/
public function uploadReport(Request $request, FileUploader $fileUploader)
{
$report = new Report();
$form = $this->createForm(ReportType::class, $report);
$form->add('submit', SubmitType::class);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
// $file stores the uploaded PDF file
/** @var Symfony\Component\HttpFoundation\File\UploadedFile $file */
$file = $report->getReport();
$fileName = $fileUploader->upload($file);
$report->setBrochure($fileName);
//$fileName = $this->generateUniqueFileName().'.'.$file->guessExtension();
// moves the file to the directory where brochures are stored
//$file->move(
// $this->getParameter('reports_directory'),
// $fileName
//);
// updates the 'brochure' property to store the PDF file name
// instead of its contents
//$report->setReport($fileName);
// ... persist the $product variable or any other work
}
return $this->render('report/createReport.html.twig', array(
'form' => $form->createView(),
));
}
Я видел сообщение , но я не могу заставить этот ответ работать на моем конце, так как такой переменной нет $container
.
Последнее обновление: я прекратил попытки загрузки с нуля. Я использовал рекомендованный комплект , чтобы он работал с минимальным количеством кода.