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 に答える