Я хочу сохранить объект User расширяет объект FOSUserBundle, но произошла ошибка:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'username_canonical' cannot be null
Как я могу перегрузить функцию сохранения моего объекта User для предоставления необходимой информации?
Мой пользователь:
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 после сохранения?
На самом деле у меня есть это после отправки формы в моем контроллере:
$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 после сохранения? Или где / когда? Но особенно как?