是否可以制作一个表单类型来处理以下两种情况?
我正在开发一个“普通”用户(例如 ROLE_USER)可以通过填写表格来执行任务的应用程序。创建记录后,他将链接到事件表。此外,ROLE_ADMIN 用户可以代表他们链接人员(使用带有附加“用户”字段的相同表单),从用户列表中选择用户。
目前我有一个“eventType”和一个“eventAdminType”,代码重复率高达 98%。我读过有关变形金刚和形成事件的文章,但我不完全确定如何使它们适应我的需要。
“eventType”的表单代码:
$builder
->add(
'reservedSlots', 'choice', array(
'choices' => array('1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5'),
'required' => true,
)
)
“eventAdminType”的表单代码:
$builder
->add('user')
->add(
'reservedSlots', 'choice', array(
'choices' => array('1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5'),
'required' => true,
)
)
实体代码:
class EventUser
{
...
/**
* @ORM\OneToOne(targetEntity="User")
* @var type
*/
private $user;
...
// all the other fields
/**
*
* @ORM\Column(type="integer")
*/
private $reservedSlots
我将如何创建上述单一表单类型?