2014-03-06 64 views
0

我想我formType映射一个自定义对象,这是不持久或任何东西..Symfony的2:表单对象,而不是一个映射实体

所以我设置data_class,但我得到的以下错误:

类 “CDA \ SvBundle \ LIB \ ImportContact \联系” 似乎不是一个管理学说 实体。你忘了映射它吗?

因此,没有我没有忘记映射它,那是故意的......

这里是我使用

class ImportContactType extends \Symfony\Component\Form\AbstractType 
{ 
    public function buildForm(\Symfony\Component\Form\FormBuilderInterface $builder, array $options) 
    { 
     $builder->add('contacts', 'entity', array('class' => "CDA\SvBundle\Lib\ImportContact\Contact")); 
    } 

    public function getName() 
    { 
     return 'importContact'; 
    } 
    public function setDefaultOptions(\Symfony\Component\OptionsResolver\OptionsResolverInterface $resolver) 
    { 
     $resolver->setDefaults(array(
      'data_class' => 'CDA\SvBundle\Lib\ImportContact\ImportContact', 
     )); 
    } 
} 
+0

你可以发布你的类型的完整声明? – Touki

+0

这是我的formType和两个自定义对象:http://paste.laravel.fr/#/show/oxE – Bonswouar

回答

2

entity FormType类型是教义FormType是需要一个实体作为class(它从ORM加载值)。您应该使用choice类型。

所以问题不是来自data_class,而是来自contacts表单字段。

编辑:错误消息提到联系人,而不是ImportContact,它呢?

+0

这就是我期待的。但是使用我的Entites作为选择的最佳方式是什么?我应该使用'buildForm'的选项吗? – Bonswouar

+1

使用选择FormType的选项'choice_list'并用你的实体填充它。 – AlterPHP

+0

我的意思是,将它传递给formType的最佳实践是什么:在构造函数中,添加一个选项,或..? – Bonswouar

相关问题