-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(空)的控制器只綁定請求表單之前,但
什麼是最好的解決辦法嗎?
在目前的情況下建立單向關係是一個好主意嗎?