PHP在数组内遍历doctrine对象


PHP iterate thru doctrine object inside array

我有一个学说数组,它持有一个对象,该对象包含属性,我试图访问每一个,但有些东西不正常工作

这里是$usersprint_r():

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'};

但说:

A PHP Error was encountered
Severity: Notice
Message: Undefined property: Entities'Months::$id:Entities'Months:private
Filename: controllers/data.php
Line Number: 264

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

通常在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();
    }