Forms 尝试在Symfony2中使用嵌入表单时出错

Forms 尝试在Symfony2中使用嵌入表单时出错,forms,symfony,Forms,Symfony,我正试图嵌入一组表单,如图所示- 我几乎从那里重写了代码,但我遇到了两个问题: FatalErrorException:编译错误:MyBundle\Form\Type\ExpenseType::setDefaultOptions()的声明必须与MyBundle\Form\Type\ExpenseType.php第33行中Symfony\Component\Form\FormTypeInterface::setDefaultOptions()的声明兼容 form_start()函数不存在 你对如何

我正试图嵌入一组表单,如图所示-

我几乎从那里重写了代码,但我遇到了两个问题:

  • FatalErrorException:编译错误:MyBundle\Form\Type\ExpenseType::setDefaultOptions()的声明必须与MyBundle\Form\Type\ExpenseType.php第33行中Symfony\Component\Form\FormTypeInterface::setDefaultOptions()的声明兼容

  • form_start()函数不存在

  • 你对如何解决第一个问题有什么想法吗?没有任何帮助:(

    另外,我没有添加任何代码,因为它与书中的相同,我只是更改了名称(或者至少我认为是这样),如果需要,我会添加任何代码

    ExpenseType.php

    <?php
    
    namespace MyBundle\Form\Type;
    
    use Symfony\Component\Form\AbstractType;
    use Symfony\Component\Form\FormBuilderInterface;
    
    class ExpenseType extends AbstractType
    {   
        public function buildForm(FormBuilderInterface $builder, array $options)
        {
            $builder->add('name', 'text',array(
                'label'  => ' '));
    
            $builder->add('description', 'textarea',array(
                'label'  => ' '));
    
            $builder->add('expenseVariants', 'collection', array('type' => new ExpenseVairantType()));
    
        }
    
        public function setDefaultOptions(OptionsResolverInterface $resolver)
        {
            $resolver->setDefaults(array(
                'data_class' => 'MyBundle\Entity\Expense',
            ));
        }
    
        public function getName()
        {
            return 'expense';
        }
    } 
    
    你失踪了

    use Symfony\Component\OptionsResolver\OptionsResolverInterface;
    

    从您的进口中。

    您至少需要向我们展示ExpenseType。phpI更新了问题:)