Php 从子实体窗体设置父实体

Php 从子实体窗体设置父实体,php,sql,forms,doctrine-orm,symfony-2.4,Php,Sql,Forms,Doctrine Orm,Symfony 2.4,我将Symfony2用于一个PHP项目,但我对实体继承有一个问题 我有一个数据库模型,需要区分不同类型的员工 以下是模型化的摘录: 雇员 礼貌 名字 名字 受雇于 秘书延聘雇员 雇员[雇员实体] 角色[另一实体] 卖方延长雇员 雇员[雇员实体] 第节[另一实体] 我必须将它分开,因为我有另一个实体,叫做Message,每个员工都可以发送给其他员工 信息 作者[员工实体] 收件人[雇员实体] 头衔 内容 寄往 在我的应用程序中,我希望能够创建一个新的“秘书”,并以相同的形式设置其“

我将Symfony2用于一个PHP项目,但我对实体继承有一个问题

我有一个数据库模型,需要区分不同类型的员工

以下是模型化的摘录:

雇员

  • 礼貌
  • 名字
  • 名字
  • 受雇于
秘书延聘雇员

  • 雇员[雇员实体]
  • 角色[另一实体]
卖方延长雇员

  • 雇员[雇员实体]
  • 第节[另一实体]
我必须将它分开,因为我有另一个实体,叫做Message,每个员工都可以发送给其他员工

信息

  • 作者[员工实体]
  • 收件人[雇员实体]
  • 头衔
  • 内容
  • 寄往
在我的应用程序中,我希望能够创建一个新的“秘书”,并以相同的形式设置其“员工”属性,而不是创建员工实体,然后将其链接到新的秘书实体

使用Symfony2的正确方法是什么

我知道我可以将属性添加到表单中并手动设置实体,但我真的认为应该有一种更干净的方法来做到这一点


是否可以使用FormBuilder?

非常简单事实上,我不知道可以在Symfony2中添加另一个FormType作为字段类型

工作方式,以防万一:

namespace MyAdminBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;

class SecretaryType extends AbstractType
{
    /**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('employee', new EmployeeType(), array('label' => 'Employee', 'required' => true))
            ->add('password', 'password', array('label' => 'Password', 'required' => true))
        ;
    }

    /**
     * @param OptionsResolverInterface $resolver
     */
    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'MyCoreBundle\Entity\Secretary'
        ));
    }

    /**
     * @return string
     */
    public function getName()
    {
        return 'my_adminbundle_secretary';
    }
}