2014-03-06 84 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

相關問題