当前,我使用PHP Symfony Framework开发应用程序。我在使用Form Builder时遇到了问题(我认为)。
我有两个实体。问题与选择。 问题和选择是一对多关系实体。一个问题有很多选择。
另外两个实体(视频和类别)的关系与“问题”和“选择”相同。
我用php bin/console make:crud
为那些实体创建了脚手架。
然后,在此guide from Symfony中添加关系symfony。
逻辑是,我必须首先选择类别以创建新的视频。与“选择”相同,我必须先选择“问题”才能创建新的“选择”数据。
打开“选择创建表单” [/ choice / new]时出现我的问题。它说
变量“展开”不存在。
然后在此行显示错误详细信息
return $this->render('choice/new.html.twig', [
'choice' => $choice,
'form' => $form->createView(), // The highlighted error appear on this line
]);
但是,这只是在“问题选择”中发生的,“我的类别-视频”关系很好。我试图使Question-Choice与Category-Video相同(我确实更改了实体的名称),我对其进行了三重检查,但选择创建表单上的错误仍然出现。
这是我的App \ Form \ ChoiceType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('content')
->add('letter')
->add('image')
->add('question', EntityType::class, [
'class' => Question::class,
'choice_label' => 'content'
])
;
}
通知add('question')
这是我的App \ Form \ VideoType buildForm方法
<?php
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('title')
->add('url', FileType::class, [
'label' => 'Video File',
'required' => false,
])
->add('thumbnail', FileType::class, [
'required' => false,
])
->add('description')
->add('category', EntityType::class, [
'class' => Category::class,
'choice_label' => 'name'
])
;
}
通知add('category')
那么,有人知道发生了什么事吗?
答案 0 :(得分:0)
我将App \ Form \ ChoiceType重命名为App \ Form \ TheChoiceType,对控制器上的类名更改做出了一些判断。一切正常!
我不相信这一点!解决方案是重命名表单类型。