[英]Symfony2 - Doctrine Entity array field and forms
假設我有一個具有$ title字段(數組類型)的Post實體,並且我想允許用戶以多種語言編寫該帖子的標題
/**
* 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]" />
您必須為表單創建一個子類型:
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());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.