2012-03-05 27 views
11

Tôi đã có một mối quan hệ Một-nhiều-một-lỗi đơn giản khi tôi cố gắng lặp qua bộ sưu tập.Lỗi Truy cập Quan hệ Một-Nhiều trong Symfony 2 với Doctrine

từ "One" user.php

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

Và tương ứng "Nhiều" UserMeasurement.php:

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

nhưng khi tôi cố gắng chạy từ một lệnh:

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

Tôi gặp lỗi sau:

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

Tôi đã chạy lệnh doctrine:schema:update --force và nói rằng tôi đồng bộ hóa.

Tôi có đang lặp không chính xác không?

Trả lời

17

Trong thực thể tài khoản của bạn, bạn có dòng này:

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

Những gì bạn đang nói thuyết là nó phải nhìn vào thực thể UserMeasurement cho một lĩnh vực tên measurements, mà không tồn tại. Những gì bạn có thể dự định là:

@ORM\OneToMany(targetEntity="UserMeasurement", mappedBy="user") 
Các vấn đề liên quan