に追加されていない私は、登録フォームを行なったし、すべての問題がある細かい教義-Symfony3:varchar型の主キーは、私は私のユーザエンティティを設定していると、データベース
働いている電子メール(varchar型)の主キー(ID)として 私は、データベースにフォームを送信すると、電子メールの列が空である
Userエンティティ:
/**
* Utilisateur
*
* @ORM\Table(name="utilisateur", indexes={@ORM\Index(name="FK_utilisateur_niveau", columns={"niveau"})})
* @ORM\Entity
*/
class Utilisateur
{
/**
* @var string
*
* @ORM\Column(name="pseudo", type="string", length=150, nullable=false)
*/
private $pseudo;
/**
* @var string
*
* @ORM\Column(name="password", type="string", length=250, nullable=false)
*/
private $password;
/**
* @var string
*
* @ORM\Column(name="email", type="string", length=150, nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="NONE")
*/
private $email;
/**
* @var \EncheresBundle\Entity\Role
*
* @ORM\ManyToOne(targetEntity="EncheresBundle\Entity\Role")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="niveau", referencedColumnName="niveau")
* })
*/
private $niveau;
/**
* Set pseudo
*
* @param string $pseudo
*
* @return Utilisateur
*/
public function setPseudo($pseudo)
{
$this->pseudo = $pseudo;
return $this;
}
/**
* Get pseudo
*
* @return string
*/
public function getPseudo()
{
return $this->pseudo;
}
/**
* Set password
*
* @param string $password
*
* @return Utilisateur
*/
public function setPassword($password)
{
$this->password = $password;
return $this;
}
/**
* Get password
*
* @return string
*/
public function getPassword()
{
return $this->password;
}
/**
* Get email
*
* @return string
*/
public function getEmail()
{
return $this->email;
}
/**
* Set email
*
* @param string $email
*
* @return Utilisateur
*/
public function setEmail($email)
{
$this->email = $email;
return $this;
}
/**
* Set niveau
*
* @param \EncheresBundle\Entity\Role $niveau
*
* @return Utilisateur
*/
public function setNiveau(\EncheresBundle\Entity\Role $niveau = null)
{
$this->niveau = $niveau;
return $this;
}
/**
* Get niveau
*
* @return \EncheresBundle\Entity\Role
*/
public function getNiveau()
{
return $this->niveau;
}
}
ここでは、インサートブロックです:
if ($form->isSubmitted() && $form->isValid()) {
$obj->setEmail($form['email']->getData());
$obj->setPseudo($form['pseudo']->getData());
$obj->setPassword($form['password']->getData());
$obj->setNiveau($form['niveau']->getData());
$em = $this->getDoctrine()->getManager();
$em->persist($obj);
$em->flush();
$this->addFlash('notice', 'Inscription effectuee !');
return $this->redirectToRoute('login');
}
どこが間違っていましたか?
完全なエンティティコードを表示できますか?これまであなたが投稿したものはすべてが大丈夫です。 –
ok review i質問を編集する – Souf
フォームの値をエンティティに再割り当てするのはなぜですか? '$ obj-> setEmail($フォーム[ 'メール'] - >のgetData());' 以前のフォームとモデルをバインドさならば、彼らは自動的に割り当てする必要があります。 '$フォーム=の$ this - > createForm(TaskType :: class、$ task); $ form-> handleRequest($ request); ' http://symfony.com/doc/current/forms.html#handling-form-submissions – CountZero