PHP通过数组内的doctrine对象进行迭代

时间:2014-07-21 23:03:00

标签: php oop doctrine-orm doctrine

我有一个包含对象的doctrine数组,该对象包含属性,我试图访问每个属性,但是某些东西不能正常工作。

以下是print_r()的{​​{1}}:

$users

以下是代码:

Array ( 
    [0] => Entities\Months Object ( 
        [id:Entities\Months:private] => 12
        [month:Entities\Months:private] => December 
        [units:Entities\Months:private] => 1 
    ) 
)

这可能会导致错误,因为字符会搞乱属性名称。我也尝试过这个:

$q = $this->doctrine->em->createQuery("select m from Entities\Months m where m.month = 'December'");
$users = $q->getResult();
print_r($users);
foreach($users as $key => $value){
    echo $value->id:Entities\Months:private;
}

但是说:

echo $value->{'id:Entities\Months:private'};

因此,如果有人知道如何阅读这些对象来操纵它们,我们将不胜感激。

1 个答案:

答案 0 :(得分:1)

通常使用Doctrine,实体的所有属性都是私有的或受保护的。您可以使用getter $value->getId();

访问它们

所以你的代码应该是

$q = $this->doctrine->em->createQuery("select m from Entities\Months m where m.month = 'December'");
    $users = $q->getResult();
    print_r($users);
    foreach($users as $key => $value){
        echo $value->getId();
    }