-1
我有双向关系的用户实体到护照实体设置为空值Symfony的形式 - 用于与OneToOne双向关系的实体
/** @Entity */
class User
{
/**
* @OneToOne(targetEntity="Passport", mappedBy="user")
* @JoinColumn(name="passport_id", referencedColumnName="id")
*/
private $passport;
// plus other fields
// plus getters and setters for all of the above...
}
/** @Entity */
class Passport
{
/**
* @OneToOne(targetEntity="User", inversedBy="passport", cascade={"persist", "remove"})
* @JoinColumn(name="user_id", referencedColumnName="id")
*/
private $user;
}
和我有FormType
/** @UserType */
$builder->add
(
'passport',
'entity',
array(
'class' => 'AppBundle\Passport',
'empty_value' => 'Please choose a passport'
)
);
所以提交时为用户选择护照形式,我们也需要在护照实体中设置用户
/** @Entity */
class User
{
//
public function setPassport($passport){
$this->passport=$passport;
if ($passport){
$passport->setUser($this);
}
}
//and other setters
}
假设用户实体已链接到Passport实体。现在我们想要解除链接(将护照设置为空)。我们可以选择empty_value选项,因此提交表单后用户将没有护照。但护照仍然会有链接给用户。
是可能的SETUSER(空)的控制器只绑定请求表单之前,但
什么是最好的解决办法吗?
在目前的情况下建立单向关系是一个好主意吗?