如何解决Symfony错误变量“扩展”不存在?

时间:2019-12-15 16:53:03

标签: php forms symfony insert twig

当前,我使用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')

那么,有人知道发生了什么事吗?

1 个答案:

答案 0 :(得分:0)

我将App \ Form \ ChoiceType重命名为App \ Form \ TheChoiceType,对控制器上的类名更改做出了一些判断。一切正常!

我不相信这一点!解决方案是重命名表单类型。