結合されたフィールド名を見つけたいのですが、取得する方法が見つかりませんでした。こんなシチュエーションがあります。インスタンス ユーザーとロールの 2 つのテーブルがあります。ユーザー エンティティには、コレクションである Roles フィールドがあります。パラメータ関連オブジェクト (ロール) を取得するメソッドが必要で、ユーザーの外部キーである role_id を返す必要があります。方法が見つかりませんでした。
質問する
322 次
1 に答える
0
エンティティが次のように宣言されていると仮定します。
/**
* @ORM\Entity
*/
class User
{
/**
* @ORM\ManyToMany(targetEntity="Role")
*/
private $roles;
/**
* @return \Doctrine\Common\Collections\Collection
*/
public function getRoles()
{
return $this->roles;
}
// Other fields and methods
// ...
}
/**
* @ORM\Entity
*/
class Role
{
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @return integer
*/
public function getId()
{
return $this->id;
}
// Other fields and methods
// ...
}
を呼び出しCollection#map()
て ID を取得できます。
$user = $this->getUser();
$roleIDs = $user->getRoles()->map(function (Role $role) {
return $role->getId();
});
別のオプションは、Doctrine 接続を使用して生の結果を取得することです。
于 2013-06-21T10:23:27.260 に答える