学说:设置主键

时间:2013-12-19 10:01:51

标签: php database symfony orm doctrine-orm

我有一个包含一些字段的表,第一个是我的主键,称为“令牌”。

我需要该令牌不是自动的,所以,我想设置这个值。例如,

   $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;
}

我需要帮助! 提前谢谢。

2 个答案:

答案 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。