Форма, которую я создал, включает в себя поле загрузки для загрузки файла. Этот файл может быть любого формата. Сама форма создается внутри FormType, и контроллер успешно обрабатывает отправку формы. Однако каждый раз, когда я отправляю форму этому контроллеру и выполняю print_r
или var_dump()
, поле загрузки не включается как часть параметров запроса POST. Когда я использую $file = $request->files->get('estimateUpload');
и var_dump()
, он будет только когда-либо возвращать NULL
.
Вот форма, которую я использую:
<?php
namespace App\Form;
use App\Entity\IhcVehicleDamageMatrix;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\FileType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\File;
class IhcVehicleDamageEntryType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('id')
->add('incidentId')
->add('vehicleDamageId')
->add('damageType')
->add('description')
->add('wheelTyreDamage')
->add('tyreAge')
->add('tyreDotCode')
->add('treadDepth')
->add('renumerationCost')
->add('itemAge')
->add('created')
->add('modified')
->add('estimateUpload', FileType::class, [
'required' => false
])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => IhcVehicleDamageMatrix::class,
]);
}
}
В файле представления это как я использую поле загрузки:
{{ form_start(damageForm, {'action': path('forms_ihc_damage_details_submitform'), 'method': 'POST', 'attr': {'id': 'ihcFormDamageDetails', 'enctype': 'multipart/form-data'}}) }}
{{ form_row(damageForm._token) }}
<tr>
<th>Upload Estimate</th>
<td>
{{ form_widget(damageForm.estimateUpload) }}
<small>{{ form_help(damageForm.estimateUpload) }}</small>
<div class="form-error">
{{ form_errors(damageForm.estimateUpload) }}
</div>
</td>
</tr>
{{ form_errors(damageForm) }}
{{ form_end(damageForm, {'render_rest': false}) }}
А в контроллере, как я получаю данные формы:
public function vehicleDamageForm(Request $request)
{
// Get Form Details
$formdet = $request->get('ihc_vehicle_damage_entry');
$em = $this->getDoctrine()->getManager();
$file = $request->files->get('estimateUpload');
var_dump($file);
}