2017-10-30 23 views
5

tôi có chức năng sau:Symfony - Gọi đến một chức năng thành viên trên mảng

public function getUserMediaAction(Request $request) 
{ 
    $data = $this->decodeToken($request); 
    $username = $data['email']; 
    $user = $this->getDoctrine()->getRepository('ApplicationSonataUserBundle:User') 
       ->findOneBy(['email' => $username]); 
    $idUser = $user->getId(); 
    $media = $this->getDoctrine()->getRepository('ApplicationSonataUserBundle:User') 
        ->findNewbieAllData($idUser); 

    return new JsonResponse(['media' => $media->getPath()]); 
} 

findNewbieAllData:

public function findNewbieAllData($id_newbie) 
{ 
    $sql = "SELECT m 
      FROM ApplicationSonataUserBundle:User u 
      JOIN ApplicationSonataUserBundle:Media m 
      WHERE u.id=?1"; 

    $query = $this->getEntityManager() 

        ->createQuery($sql) 
        ->setParameter(1, $id_newbie); 

    $result = $query->getArrayResult(); 
    return $result; 
} 

mà tiếc là trả về lỗi sau:

Call to a member function getPath() on array 

Stack Trace 

in src\CoolbirdBundle\Controller\UserController.php at line 97 - 
     $media = $this->getDoctrine()->getRepository('ApplicationSonataUserBundle:User') 
         ->findNewbieAllData($idUser); 
     return new JsonResponse(['media' => $media->getPath()]); 
    } 

Sẽ bất cứ ai có bất kỳ ý tưởng nào về cách tôi có thể giải quyết vấn đề này không?

cảm ơn bạn trước

Trả lời

2

Hãy thử như sau thay vì:

return new JsonResponse(['media' => $media[0]->getPath()]); 

Edit: Nhìn vào var_dump đầu ra bạn nên thử điều này:

return new JsonResponse(['media' => $media[0]['path']]); 
Các vấn đề liên quan