Php 根据上下文交换表单字段类型的更好方法
是否可以创建一个表单类型来处理以下两种情况 我正在开发一个应用程序,其中“普通”用户(例如ROLE_用户)可以通过填写表单来执行任务。创建记录时,他将链接到事件表。此外,ROLE_ADMIN用户可以代表他们链接用户(使用带有附加“用户”字段的相同表单),从用户列表中选择用户 目前,我有一个“eventType”和一个“eventAdminType”,代码重复率为98%。我读过《变形金刚》和《变形金刚》的相关书籍,但我并不完全确定如何使它们适应我的需要 “eventType”的表单代码: “eventAdminType”的表单代码: 实体代码:Php 根据上下文交换表单字段类型的更好方法,php,symfony,Php,Symfony,是否可以创建一个表单类型来处理以下两种情况 我正在开发一个应用程序,其中“普通”用户(例如ROLE_用户)可以通过填写表单来执行任务。创建记录时,他将链接到事件表。此外,ROLE_ADMIN用户可以代表他们链接用户(使用带有附加“用户”字段的相同表单),从用户列表中选择用户 目前,我有一个“eventType”和一个“eventAdminType”,代码重复率为98%。我读过《变形金刚》和《变形金刚》的相关书籍,但我并不完全确定如何使它们适应我的需要 “eventType”的表单代码: “eve
class EventUser
{
...
/**
* @ORM\OneToOne(targetEntity="User")
* @var type
*/
private $user;
...
// all the other fields
/**
*
* @ORM\Column(type="integer")
*/
private $reservedSlots
我将如何创建上述单个表单类型 您可以为这两种类型创建表单类型类,并让一种类型扩展另一种类型:
namespace Acme\Bundle\DemoBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
class EventType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
// some code
}
}
这里有一些关于的附加信息。我喜欢它。有时候答案很简单!谢谢你,吉尔登
class EventUser
{
...
/**
* @ORM\OneToOne(targetEntity="User")
* @var type
*/
private $user;
...
// all the other fields
/**
*
* @ORM\Column(type="integer")
*/
private $reservedSlots
namespace Acme\Bundle\DemoBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
class EventType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
// some code
}
}
namespace Acme\Bundle\DemoBundle\Form;
use Symfony\Component\Form\FormBuilder;
class EventAdminType extends EventType
{
public function buildForm(FormBuilder $builder, array $options)
{
parent::buildForm($builder, $options);
// fields for the admin form
}
}