У меня есть эта форма, отчет с приложением документа oneToMany
class ReportType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('documentDatas', CollectionType::class, array(
'entry_type' => DocumentType::class,
'allow_add' => true,
'allow_delete' => true,
'label' => false
))
->add('comment', TextType::class, array(
'label' => 'vat',
'required' => false,
))
->add('save', SubmitType::class);
}
}
и это тип документа
class DocumentType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('examDocument', VichImageType::class, array(
'label' => 'examDocument',
'data_class' => null,
'attr' => array('class' => 'upload-image'),
))
->add('note', TextType::class, array(
'label' => 'notes',
'required' => false,
));
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'AppBundle\Model\DocumentData',
));
}
}
Где я использую VichImageType для загрузки. Когда проверка формы в порядке, все идет хорошо, файл загружается и сущности документа добавляются в мою БД.
Но когда какая-то проверка нарушена (в документе или в комментарии), я получаю эту странную ошибку:
Класс "AppBundle \ Model \ DocumentData" не загружается. Если вы используете
аннотации для настройки VichUploaderBundle, вы, вероятно, просто забыли
добавить @Vich\Uploadable
поверх вашей сущности. Если вы не используете
аннотации, проверьте, что файлы конфигурации находятся в правильном
место. В обоих случаях очистка кэша также может решить проблему.
Я получаю это, когда мое действие пробует ответ с представлением, когда форма недействительна:
public function commentAction(Request $request) {
$reportData = new ReportData();
$form = $this->createForm(ReportType::class, $reportData);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()){
//some logic
}
return $this->render('report/form.html.twig', [
'form' => $form->createView(), //symfony evidence this row in the exception
]);
}