2013-11-21 26 views
1

讓我們說我有一個具有$標題字段(整型)後的實體,我想允許用戶寫的文章的標題中多語言Symfony2的 - 主義實體陣列領域,形成

/** 
* Post 
* 
* @ORM\Table(name="posts") 
* @ORM\Entity 
*/ 
class Post 
{ 
    /** 
    * @var integer 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    protected $id; 

    /** 
    * @var array 
    * 
    * @ORM\Column(name="title", type="array", nullable=true) 
    */ 
    protected $title; 
} 

如何創建用戶想要提交新帖子時生成這些字段的表單類型?

<input type="text" name="title[en]" /> 
<input type="text" name="title[fr]" /> 
+0

我真的不認爲這是用教條實施翻譯行爲的好方法。爲什麼不使用DoctrineExtension可翻譯? – Shady

回答

1

你必須爲你的表單子類型:

class TitleType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
      $builder 
        ->add('en') 
        ->add('fr'); 
    } 

    public function getName() 
    { 
      return 'form_type'; 
    } 
} 

然後你就可以在你的主要類型添加此子類型:

public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
      $builder 
        ->add('title', new TitleType()); 
    }