2012-03-05 17 views
11

私は、コレクションを反復しようとするとエラーが出る単純な1対多の関係があります。symfony 2とDoctrineとの1対多の関係へのアクセス

"ワン" User.php

/** 
    * @ORM\OneToMany(targetEntity="UserMeasurement", mappedBy="measurements") 
    */ 
    protected $measurements; 

とそれに対応する "多くの" UserMeasurement.phpから:

/** 
    * @ORM\ManyToOne(targetEntity="User", inversedBy="measurements", cascade={"persist"}) 
    * @ORM\JoinColumn(name="user_id", referencedColumnName="id") 
    */ 
    protected $user; 

、まだ私は、コマンドから実行しよう:

$query = $em->createQuery(" SELECT user FROM AcmeFooBundle:User user"); 
    $users = $query->getResult(); 
    foreach ($users as $user) { 
     print count($user->getMeasurements()->toArray()); 
    } 

次のエラーが発生します。

[ErrorException]
Notice: Undefined index: measurements in /Applications/MAMP/htdocs/Symfony/vendor/doctrine/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php line 1280

私はdoctrine:schema:update --forceコマンドを実行しましたが、私は同期していると言います。

間違って繰り返していますか?あなたのUserエンティティで

答えて

17

、あなたはこのラインを持っている:

@ORM\OneToMany(targetEntity="UserMeasurement", mappedBy="measurements") 

あなたは教義を言っている何が存在しないmeasurementsという名前のフィールド、ためUserMeasurementエンティティに見えるべきであるということです。おそらくあなたが意図したのは:

@ORM\OneToMany(targetEntity="UserMeasurement", mappedBy="user") 
関連する問題