0

User Entity および Role 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;

} 
4

1 に答える 1

0

$role に @ORM\Column 定義を含めないでください。role_id 列は、@JoinColumn の name パラメータに基づいて ORM によって自動的に作成されます。$role は、整数ではなく、関連付けられた Role エンティティを設定するために使用されます。

于 2013-01-09T15:10:33.850 に答える