我一直收到以下错误:
属性“类别”也不是其中一种方法 “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的设置会阻止它执行此操作。