Doctrine 2 でデータベースからデータをフェッチしようとしましたが、findBy() 関数に問題があります。
私はエンティティUserを持っています:
/**
* @ORM\id
* @ORM\generatedValue
* @ORM\column(type="integer")
*/
private $id;
/**
* @ORM\column(type="string", length=32, unique=true)
*/
private $user;
そしてエンティティUserList :
/**
* @ORM\id
* @ORM\generatedValue(strategy="NONE")
* @ORM\oneToOne(targetEntity="User")
* @ORM\joinColumn(name="user_id", referencedColumnName="id")
*/
private $id;
/**
* @ORM\oneToOne(targetEntity="User")
* @ORM\joinColumn(name="parent_id", referencedColumnName="id")
*/
private $parent = null;
私はデータを含むテーブルを持っています:
Users:
+----+------+
| id | user |
+----|------+
| 1 | John |
| 2 | Jane |
| 3 | Doe |
+----+------+
UsersList (id 3 have two parents):
+---------+-----------+
| user_id | parent_id |
+---------|-----------+
| 1 | NULL |
| 2 | NULL |
| 3 | 1 |
| 3 | 2 |
+---------+-----------+
Doe (id 3) の両親を取得したい:
$user = $this->entityManager->getRepository('User')->findByUser('Doe');
$user_parents = $this->entityManager->getRepository('UserList')->findById($user);
foreach($user_parents as $parent)
{
var_dump($parent);
}
戻る:
UserList(2) {
id private => 3
parent private => 1
}
UserList(2) {
id private => 3
parent private => 1 //this should be 2
}
問題はどこだ?ありがとう。