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任何东西,它将提交空值。
我有添加开发人员的表格,开发人员与实体团队有 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任何东西,它将提交空值。