Symfony表单属性“类别”和方法“getCategory()”之一都没有错误

时间:2014-11-17 17:02:49

标签: sql forms symfony propel

我一直收到以下错误:

  

属性“类别”也不是其中一种方法   “getCategory()”,“category()”,“isCategory()”,“hasCategory()”,   “__get()”存在并且在课堂上具有公共访问权限   “测试\ TesterBundle \模型\产品”

我有3个表:产品,类别和产品类别。 ProductCategories是Producs和Category Table(多对多)的ID。但我不断收到上述错误。

我有以下表单构建器:

class ProductsType extends AbstractType
{

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('ProductName');
        $builder->add('ProductDescription', 'textarea', array("required"=> false));
        $builder->add('ShortDescription', null);
        $builder->add('SKU', null);
        $builder->add('UnitWeight', null);
        $builder->add('UnitPrice', null);
        $builder->add('UnitLength', null);
        $builder->add('UnitHeight', null);
        $builder->add('UnitDepth', null);
        $builder->add('URL', null);
        $builder->add('MetaTitle', null);
        $builder->add('MetaDescription', null);
        $builder->add('MetaKeywords', null);
        $builder->add('Category', 'collection', array(
                        'type' => new \Test\TesterBundle\Form\Type\CategoryType(),
                        'allow_add' => true,
                        'allow_delete' => true,
                        'by_reference' => false, 

                    ));

    }

    public function setDefaultOptions(OptionsResolverInterface $resolver) {
        $resolver->setDefaults(array(
            'validation_groups' => array('newProducts'),
            'data_class' => 'Test\TesterBundle\Model\Products',
        ));
    }

    public function getName(){
        return "Products";
    } 


}

第二个是:

class CategoryType extends AbstractType
{

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
                ->add('CategoryName', 'model', array(
                        'class' => 'Test\TesterBundle\Model\Productcategory',
                        'required' => false,
                        'multiple' => true,
                        'expanded' => false,
                        'property' => 'label'
                    ));
    }

    public function setDefaultOptions(OptionsResolverInterface $resolver) {
        $resolver->setDefaults(array(
            'data_class' => 'Test\TesterBundle\Model\Productcategory'
        ));
    }

    public function getName(){
        return "ProductCategory";
    }   


}

有关导致此问题的原因的任何想法?我不确定它是否是控制器中使用的实例,或者是因为我错误地设置了表单构建器,并且无法与“类别”字段(它不会)直接相关。如果我使用mapped => false,然后它可以工作,但构建器必须从数据库填充选择框,映射到false的设置会阻止它执行此操作。

0 个答案:

没有答案