2016-01-02 3 views
0

Я использую QueryBuilder в мой контроллер для приема данных и выход как JSON:Symfony - QueryBuilder в контроллере

$qb = $this->getDoctrine()->getManager(); 

    $qb = $qb->createQueryBuilder(); 

    $qb->select('c') 
     ->from('AppBundle:Customer\Customer', 'c'); 

    $data = $qb->getQuery()->getResult(); 

    $response = new JsonResponse(); 
    $response->setData(
     [ 
      'data' => $data 
     ] 
    ); 

    return $response; 

Мой Entity находится в пространстве имен:

namespace AppBundle\Entity\Customer; 

use Doctrine\ORM\Mapping as ORM; 
use Doctrine\Common\Collections\ArrayCollection; 
use Symfony\Component\Validator\Constraints as Assert; 


/** 
* @ORM\Table(name="customer") 
* @ORM\Entity(repositoryClass="AppBundle\Entity\Customer\Repository") 
*/ 
class Customer { 

.... 

Есть две записи, сохраненные в Таблица.

Когда я загружаю URL-адрес, он просто печатает два пустых массива и никаких данных.

Любой может объяснить, почему?

+3

объектов не будут автоматически сериализованными. замените getResult с помощью getArrayResult http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/reference/dql-doctrine-query-language.html#query-result-formats Позже вы захотите прочитать на сериализаторах: http://symfony.com/doc/current/components/serializer.html или http://php.net/manual/en/class.jsonserializable.php – Cerad

ответ

1

Попробуйте это и затем извлечь его ......

$response = new JsonResponse(); 
$response->setData(array('data' => $data)); 
+2

Как это отличается от того, что находится в вопросе? – Cerad

Смежные вопросы