2012-03-05 14 views
11

Koleksiyonda yinelemeyi denediğimde hatalar çıkaran basit bir Birden Fazla Bağlantım var.Doymrine Symfony 2'de Bire Çok İlişkine Erişme Hatası

"Bir" User.php

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

Ve karşılık gelen "Birçok" UserMeasurement.php dan

:

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

ve henüz bir komutundan çalıştırmayı denediğinizde:

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

Aşağıdaki hatayı alıyorum:

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

doctrine:schema:update --force komutunu çalıştırdım ve eşit olduğumu söylüyor.

Yanlış mı yineliyorum?

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

Ne Doctrine söylüyorsun var olmayan measurements adında bir alanda, için UserMeasurement varlıktaki bakmak gerektiğidir: Kullanıcı varlıkta

cevap

17

, bu çizgi var. Muhtemelen amaçlanan şey şuydu:

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