私は Doctine2\ORM を使用しており、 userのエンティティとroleがあります。
ユーザーが登録するとき、ユーザー ID を使用してロール レコードを作成し、その ID をユーザーに返し、ユーザー レコードを作成する必要があります。そのような作業のために注釈を整理するにはどうすればよいですか?
まず、ユーザーの登録時にロール エントリを作成したくないと思います。これらを事前に (それぞれのアクセス権と共に) 定義するのが賢明だと思います。
あなたがそれを処理したら、永続化カスケードが設定された User の ManyToOne があなたの求めている明らかな関係になると思います。
/**
* @Table(name="role")
*/
class Role
{
// possibly define your roles accesses as another realtion or hard code?
}
/**
* @Table(name="user")
*/
class User
{
// id + any other definitions
/**
* @var Entities\Role $role
* @ManyToOne(targetEntity="Role", cascade={"persist"})
*/
private $role;
}
中にユーザーにデフォルトの役割を追加してから__construct
、関連付けを としてマークできますcascade={"persist"}
。
コンストラクタは次のようになります。
public function __construct()
{
$this->role = new RoleLink();
}
また、ロールがユーザー自体への参照を保持する必要はないと思いますが、必要な場合は、Doctrine 2 ORM では関連オブジェクトを関連付けプロパティ自体 (識別子ではなく!) に割り当てることで関連付けを処理することに注意してください。