2
一個FOSUser實體我想堅持用戶實體的很好的方式延伸FOSUserBundle實體,而是發生錯誤:堅持級聯
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'username_canonical' cannot be null
我如何可以重載我的用戶實體給予信息的持續作用它需要 ?
我的用戶實體:
class User extends BaseUser
{
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
*
* @ORM\OneToOne(targetEntity="MyApp\MainBundle\Entity\Project")
*/
private $project;
...
}
我的項目單位:
class Structure
{
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var integer $master
*
* @ORM\OneToOne(targetEntity="Uriae\UserBundle\Entity\User", cascade={"persist"})
*
* @Assert\NotBlank()
* @Assert\Type(type="Uriae\UserBundle\Entity\User")
*/
private $master;
...
}
編輯以響應FractalizeR:
你的意思是我必須後usernameCanonical財產堅持手動設置?
Actyally我有後的形式在我的控制器發送:
$structure = new \Uriae\MainBundle\Entity\Structure();
if ($request->getMethod() == 'POST')
{
$form->bindRequest($request);
if ($form->isValid())
{
$em = $this->getDoctrine()->getEntityManager();
$em->persist($structure);
$em->flush();
...
}
}
你的意思是我必須手動設置後的usernameCanonical財產的堅持?或在哪裏/何時?但特別如何?
您是否在持續用戶之前設置了usernameCanonical屬性? –
@FractalizeR實際上,FOSUser實體有很多屬性不能爲null,並且通過這種方式持久化,FOSUser不能將屬性設置爲良好的值。 我找到一種方法來設置這個值,而不需要手動設置這些值並使用FOSUser函數。 – Naelyth