从对象数组中检索属性值

时间:2013-08-30 11:40:37

标签: php arrays object symfony properties

我知道问题很简单,但我找不到如何解决它。我需要从变量中检索一个值,但是徒劳无功:

我有以下控制器:

  public function followersAction()
        {
            $em = $this->getDoctrine()->getManager();

            $usr= $this->get('security.context')->getToken()->getUser();

            $query = $em->createQuery(
                    'SELECT p
                    FROM TESTBlogBundle:Follow p               
                    WHERE p.followed = :me'
                    )->setParameter('me', $usr->getId());
                    $followers = $query->getResult();

            return array(
                'entities' => $followers
            );
        }

在另一个控制器中,我正在使用:

$myfollowers=$this->followersAction();

当我在var_dump时,我有:

array(3) {
  ["entities"]=>
  array(1) {
    [0]=>
    object(TEST\Bundle\BlogBundle\Entity\Follow)#364 (3) {
      ["id":"TEST\Bundle\BlogBundle\Entity\Follow":private]=>
      int(1)
      ["follower"]=>
      int(2)
      ["followed"]=>
      int(1)
    }
  }
  ["current_user"]=>
  int(1)
  ["followers_count"]=>
  int(1)
}

我需要获得属性的价值:追随者。

foreach($myfollowers as $myfollower)
    {
        echo '<pre>';

        var_dump($myfollower[0]->follower);
        var_dump($myfollower[0]->getFollower());
        var_dump($myfollower->getFollower());

        echo '</pre>';


    }

我遇到的错误如下:尝试获取非对象的属性,在非对象上调用成员函数getFollower()。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您正试图在错误的范围内循环。 $ myfollowers ['entities']包含正确的,因此您可以将其作为循环的起点。

以下应该可以解决问题。

foreach($myfollowers['entities'] as $myfollower)
{
    echo '<pre>';
    var_dump($myfollower->getFollower());
    echo '</pre>';    
}