学说:设置主键

use*_*692 7 php database orm symfony doctrine-orm

我有一个带有一些字段的表,第一个是我的主键,称为"令牌".

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


       $em = $this->getDoctrine()->getManager();
       $object->setToken("first");
       $object->setValue("123");
       $em->persist($object);
       $em->flush();
Run Code Online (Sandbox Code Playgroud)

但是,在我的数据库中,始终令牌为空,¿为什么?当我刷新时,令牌值消失.

在我的实体中,令牌被声明:

     /**
     * @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;
    }
Run Code Online (Sandbox Code Playgroud)

我需要帮助!提前致谢.

Dev*_*NIX 5

尝试用ORM\GeneratedValue

/**
 * @var string
 *
 * @ORM\Column(name="token", type="string", length=45, nullable=false)
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="NONE")
 */
private $token;
Run Code Online (Sandbox Code Playgroud)


Rom*_*hko -1

也许这可以帮助Doctrine2 Primary Key

如果您没有使用命令创建表,请检查数据库中doctrine是否$token设置为。Primary Key