我有一个包含一些字段的表,第一个是我的主键,称为“令牌”。
我需要该令牌不是自动的,所以,我想设置这个值。例如,
$em = $this->getDoctrine()->getManager();
$object->setToken("first");
$object->setValue("123");
$em->persist($object);
$em->flush();
但是,在我的数据库中,始终令牌为空,¿为什么?当我刷新时,令牌值消失。
在我的实体中,声明了令牌:
/**
* @var string
*
* @ORM\Column(name="token", type="string", length=45, nullable=false)
* @ORM\Id
*/
private $token;
/**
* Set token
*
* @param string $token
* @return Downloads
*/
public function setToken($token)
{
$this->token = $token;
return $this;
}
/**
* Get token
*
* @return string
*/
public function getToken()
{
return $this->token;
}
我需要帮助! 提前谢谢。
答案 0 :(得分:1)
尝试使用ORM\GeneratedValue
/**
* @var string
*
* @ORM\Column(name="token", type="string", length=45, nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="NONE")
*/
private $token;
答案 1 :(得分:-1)
这可能有助于Doctrine2 Primary Key。
如果您没有使用doctrine命令创建表,请检查$ token是否设置为数据库中的Primary Key。