使用实体连接Symfony2 / Doctrine中的表

时间:2013-01-09 13:32:15

标签: join symfony orm doctrine entity

我正在尝试使用我的用户实体和角色实体类中的注释方法向我的数据库添加关系,但是当我更新元数据并从命令行运行更新然后转到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;

} 

1 个答案:

答案 0 :(得分:0)

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