1

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
 }

問題はどこだ?ありがとう。

4

1 に答える 1

0

@Idプロパティに注釈を追加する必要がありUserList::$parentます。

于 2012-07-11T17:27:25.797 に答える