Symfony Form ManyToOne 需要同理心

Symfony Form ManyToOne need empthy

我有添加开发人员的表格,开发人员与实体团队有 ManyToOne 关系,在表格中我可以为开发人员选择团队,但我想有可能创建没有团队的开发人员,我该怎么做?我需要没有团队的开发人员,因为有团队的开发人员有角色 = ROLE_DEVELOPER,没有团队的开发人员有角色 = ROLE_FREELANCER 这是我的逻辑:

            if ($form->isValid()) {
            $data = $form->getData();
            $team_field = $data->getTeams();

            $pass = $this->hf->generatePassword();
            $entity->setPassword(sha1($pass));
            $entity->setAddedBy($this->getUser());
            if(!empty($team_field)){
                $entity->setRoles('ROLE_DEVELOPER');
            }
            if(empty($team_field)){
                $entity->setRoles('ROLE_FREELANCER');
            }

但我需要空($team_field)

本实体开发商

class Developer extends CustomUser
{
/**
 * @var string
 *
 * @ORM\Column(name="email", type="string", length=255,  unique=false, nullable=true)
 * @Assert\Length(min=3, max=255)
 */
protected $email;
    /**
 * @ORM\ManyToOne(targetEntity="Teams", inversedBy="developers")
 * @ORM\JoinColumn(name="team_id", nullable = true, referencedColumnName="id")
 * */
protected $teams;

这个实体团队

class Teams extends STeam
{
/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
protected $id;
    /**
 * @ORM\OneToMany(targetEntity="Developer", mappedBy="teams",  cascade={"persist", "remove"})
 */
protected $developers;

和这个表格

                            ->add('teams', 'entity', array(
                            'class' => 'ArtelProfileBundle:Teams',
                            'property' => 'company',
                            'required' => 'false',
                        ));

请帮忙

试试这个 (http://symfony.com/doc/current/reference/forms/types/entity.html#placeholder and http://symfony.com/doc/current/reference/forms/types/entity.html#empty-data)

->add('teams', 'entity', array(
           'class' => 'ArtelProfileBundle:Teams',
           'placeholder' => 'Choose an option',
           'empty_data' => null,
           'property' => 'company',
           'required' => 'false'
));

如果用户没有select任何东西,它将提交空值。