0

我正在尝试使用我的用户实体和角色实体类中的注释方法将关系添加到我的数据库,但是当我更新元数据并从命令行运行更新然后转到 phpMyAdmin 时,使用不存在任何关系设计师工具。我正在尝试使用 Symfony2 和 Doctrine 编写所有数据库更改以保持一致。这是我目前拥有的:

<?php

namespace XXX\XXXBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
* Role
*
* @ORM\Table(name="role")
* @ORM\Entity
* @ORM\HasLifecycleCallbacks()
*/
class Role
{ 

 /**
 *
 * @ORM\OneToMany(targetEntity="User", mappedBy="role")
 */
private $users; 

}

<?php

namespace XXX\XXXBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
* User
*
* @ORM\Table(name="user",indexes={@ORM\Index(name="role", columns={"role_id"})})
* @ORM\Entity
* @ORM\HasLifecycleCallbacks()
*/
class User
{ 

/**
 * @var integer
 *
 * @ORM\Column(name="role_id", type="integer")
 * @ORM\ManyToOne(targetEntity="Role", inversedBy="users")
 * @ORM\JoinColumn(name="role_id", referencedColumnName="id")
 */
private $role;

} 
4

1 回答 1

0

$role 不应包含 @ORM\Column 定义。role_id 列将由 ORM 根据 @JoinColumn 中的 name 参数自动创建。$role 将用于填充关联的角色实体,而不是整数。

于 2013-01-09T15:10:33.850 回答