Symfony 条令一对一使用注释自动持久化id

Symfony 条令一对一使用注释自动持久化id,symfony,doctrine-orm,annotations,persistence,one-to-one,Symfony,Doctrine Orm,Annotations,Persistence,One To One,我有一个困难,我似乎无法解决,即使我似乎是在应用其他人发现的好食谱 我收到以下错误: AppBundle\Entity\User\Student类型的实体缺少分配的ID 对于字段“用户”。此实体的标识符生成策略 要求在EntityManagerpersist之前填充ID字段 被称为。如果您希望自动生成标识符,请 需要相应地调整元数据映射 在symfony 2中,我的实体用户和学生之间有一种原则2一对一关系,当我使用学生的子表单持久化用户时,我希望学生的id自动设置为用户的id 我有两门课: cl

我有一个困难,我似乎无法解决,即使我似乎是在应用其他人发现的好食谱

我收到以下错误:

AppBundle\Entity\User\Student类型的实体缺少分配的ID 对于字段“用户”。此实体的标识符生成策略 要求在EntityManagerpersist之前填充ID字段 被称为。如果您希望自动生成标识符,请 需要相应地调整元数据映射

在symfony 2中,我的实体用户和学生之间有一种原则2一对一关系,当我使用学生的子表单持久化用户时,我希望学生的id自动设置为用户的id

我有两门课:

class Student
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer", length=11)
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\Id
     * @ORM\OneToOne(targetEntity="\AppBundle\Entity\User\User", inversedBy="student")
     * @ORM\JoinColumn(name="id", referencedColumnName="id", nullable=false, unique=true, onDelete="cascade")
     */
    private $user;
...
}


class User
{

    /**
     * @ORM\OneToOne(targetEntity="\AppBundle\Entity\User\Student", mappedBy="user", cascade={"persist"})
     */
    private $student;
}
当我持久化实体时,出现了上面描述的错误。如果我打电话

$entity->getStudent->setUser$entity

在我持久化实体之前,这很好,我使用与用户相同的id来持久化学生,只是我不想在我用来持久化的方法中得到具体的信息,因为我使用表单管理器作为服务,这对于其他操作来说很常见

那么,有没有可能设置一些注释,以便在创建学生时自动将学生id设置为用户id? 若有,原因为何

多谢各位, 关于编辑:

我看到你更新了你的问题。如果可能的话,我不太喜欢舒尔,但可以试试类似的东西

class Student
{
    /**
     * @ORM\Column(name="id", type="integer", nullable=false, unique=true)
     * @ORM\Id
     */
    private $id;

    /**
     * @ORM\OneToOne(targetEntity="\AppBundle\Entity\User\User", inversedBy="student")
     * @ORM\JoinColumn(name="id", referencedColumnName="id", nullable=false, unique=true, onDelete="cascade")
     */
    private $user;

    // ...
}

我回到了使用id列,但之前定义了它,没有自动递增。

我已经尝试过了,但它没有改变,我得到了相同的错误。我尝试过使用user\u id,使用某物\u id,我没有忘记更新数据库模式,我尝试过删除整个@ORM\JoinColumn行,但这没有什么区别。我似乎无法理解这个问题。。。如果你有进一步的想法,欢迎!好吧,我明白我打算做的只是得到2.1条原则的支持,而不是进一步的版本。。。我必须使用一个Id和一个额外的外键才能工作。不能只是同一列。