0

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

我有以下控制器:

  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)
}

我需要获取属性的值:follower。

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

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

        echo '</pre>';


    }

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

感谢您的帮助。

4

1 回答 1

1

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

以下应该可以解决问题。

foreach($myfollowers['entities'] as $myfollower)
{
    echo '<pre>';
    var_dump($myfollower->getFollower());
    echo '</pre>';    
}
于 2013-08-30T11:47:55.567 回答