私は教義に不慣れです。アノテーション付きの次のUserクラスがあります。主キーは$useridで、これは文字列です。$ useridを自動的に設定する代わりに、idを手動で設定したいと思います。どうすればいいのかわからないのですが?
<?php
namespace models;
/**
* User
*
* @Table(name="user")
* @Entity
*/
class User
{
/**
* @var string $userid
*
* @Column(name="userid", type="string", length=255, precision=0, scale=0, nullable=false, unique=false)
* @Id
* @GeneratedValue(strategy="IDENTITY")
*/
private $userid;
/**
* @var string $fullname
*
* @Column(name="fullname", type="string", length=255, precision=0, scale=0, nullable=false, unique=false)
*/
private $fullname;
/**
* @var string $password
*
* @Column(name="password", type="string", length=255, precision=0, scale=0, nullable=false, unique=false)
*/
private $password;
/**
* @var string $email
*
* @Column(name="email", type="string", length=255, precision=0, scale=0, nullable=false, unique=false)
*/
private $email;
/**
* Get userid
*
* @return string $userid
*/
public function getUserid()
{
return $this->userid;
}
/**
* Set fullname
*
* @param string $fullname
*/
public function setFullname($fullname)
{
$this->fullname = $fullname;
}
/**
* Get fullname
*
* @return string $fullname
*/
public function getFullname()
{
return $this->fullname;
}
/**
* Set password
*
* @param string $password
*/
public function setPassword($password)
{
$this->password = $password;
}
/**
* Get password
*
* @return string $password
*/
public function getPassword()
{
return $this->password;
}
/**
* Set email
*
* @param string $email
*/
public function setEmail($email)
{
$this->email = $email;
}
/**
* Get email
*
* @return string $email
*/
public function getEmail()
{
return $this->email;
}
}
IDを公開して自分で設定した場合でも、ドクトリン2はデフォルト値(空の文字列)を挿入し、整合性制約違反につながります。誰かが私にこれに対する詳細な解決策を提供できますか?