我正在尝试使用我的用户实体和角色实体类中的注释方法向我的数据库添加关系,但是当我更新元数据并从命令行运行更新然后转到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;
}
答案 0 :(得分:0)
$ role不应包含@ORM \ Column定义。 ORM将根据@JoinColumn中的name参数自动创建role_id列。 $ role将用于填充关联的Role实体,而不是整数。