Php 手动设置ID,或

Php 手动设置ID,或,php,doctrine,doctrine-orm,Php,Doctrine,Doctrine Orm,我对教义一无所知。我有一个带有注释的用户类。主键是$userid,它是字符串。我不想自动设置$userid,而是想手动设置id。我怎么不知道该怎么做 <?php namespace models; /** * User * * @Table(name="user") * @Entity */ class User { /** * @var string $userid * * @Column(name="userid", type="string", length=25

我对教义一无所知。我有一个带有注释的用户类。主键是$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定义中删除@GeneratedValue行。您正在请求Dority为您生成ID。

谢谢,这很有效!但是我使用orm:generate entities生成类,如果更改表,它会再次添加@GeneratedValue。我是否可以在命令中添加一些东西,这样我就不需要手动删除注释,因为项目需要大量的表?我不知道,我从来没有使用过Doctrine的自动生成工具。如果不可能的话,我会很惊讶。