我正在寻找一种使用 Symfony 4 创建嵌入式表单的方法。我使用了一个查询,这个查询返回一个数组。但是当我执行代码时出现以下错误:
表单的视图数据应该是类 App\Entity\Categorie 的一个实例,但它是一个 (n) 数组。您可以通过将“data_class”选项设置为 null 或添加一个将 (n) 数组转换为 App\Entity\Categorie 实例的视图转换器来避免此错误。
所以我的控制器看起来像这样:
/**
* @Route("/admin/categories/import/{userId}", name="admin.categorie.link", methods={"GET|POST"})
* @param Int $userId
* @return Response
*/
public function linkImport(Int $userId, Request $request)
{
$categories = $this->em->getRepository(Categorie::class)->checkIfNew($userId);
$form = $this->createForm(CategorieType::class, $categories);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$this->em->flush();
$this->addFlash('success', 'Catalogue modifié avec succès');
return $this->redirectToRoute('admin.catalogues.index');
}
return $this->render('admin/catalogues/link.html.twig', [
'categories' => $categories,
'form' => $form->createView()
]);
}
我的表单类型如下所示:
class CategorieType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('categorie_intitule')
->add('categorie_parent_id')
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => Categorie::class,
]);
}
}
我尝试使用 foreach 来构建表单
foreach ($categories as $categorie) {
$form = $this->createForm(CategorieType::class, $categorie);
$form->handleRequest($request);
}
但它在我的树枝里返回了我的notinhg。所以你能告诉我更多关于这个错误的信息,以及如何解决它吗?谢谢。
米琪卡哇伊