我知道问题很简单,但我找不到如何解决它。我需要从变量中检索一个值,但是徒劳无功:
我有以下控制器:
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()。
感谢您的帮助。
答案 0 :(得分:1)
您正试图在错误的范围内循环。 $ myfollowers ['entities']包含正确的,因此您可以将其作为循环的起点。
以下应该可以解决问题。
foreach($myfollowers['entities'] as $myfollower)
{
echo '<pre>';
var_dump($myfollower->getFollower());
echo '</pre>';
}