Представление аннотаций Symfony RestBundle

В начале моего действия у меня есть ответ, как массив, но затем ответ меняется как объект, и я не понимаю, почему. Функция findBitByProject не изменяется - возвращает

$results = $query->getResult();

мое действие

    $bits = $this->getDoctrine()->getManager()
        ->getRepository('ArtelProfileBundle:Bit')
        ->findBitByProject($request);  

    //$bits return array<Bit>

    return View::create()
        ->setStatusCode(200)
        ->setData($bits)
        ->setSerializationContext(
            SerializationContext::create()
                ->setGroups(
                    array('for_project_bit')
                )
        );

ответ рано

[
  {}
  {}
]

Теперь

{
0: {}
1: {}
}

мой класс ставки

/**
 * Bit.
*
* @ORM\Table(name="bit")
* @ORM\HasLifecycleCallbacks
* @ORM\Entity(repositoryClass="Artel\ProfileBundle\Entity\Repository\BitRepository")
* @Gedmo\SoftDeleteable(fieldName="deletedAt")
* @Annotation\ExclusionPolicy("all")
*/
class Bit
{
const NOT_APPROPRIATE       = 'not_appropriate';
const WAITING_FOR_DECISION  = 'waiting_for_decision';
const CONFIRM               = 'confirmed';
const STATUS_SEND_CLIENT    = 'send_client';
const WAITING_FOR_FEEDBACK  = 'waiting_for_feedback';
const STATUS_SENT_CV        = 'sent_cv';
const STATUS_UNRESOLVED     = 'unresolved';

use Timestampable;

/**
 * @var int
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 * @Annotation\Expose()
 * @Annotation\Groups({
 *      "get_client_by_id", "get_bid_id", "for_project_bit", "for_project_bit_admin", "for_all_projects",
 *      "get_entity_bits", "get_all_projects", "for_projects", "get_all_workorders", "get_workorder"
 * })
 */
private $id;

/**
 * @var Developer
 *
 * @ORM\ManyToOne(targetEntity="Developer", inversedBy="bit", cascade={"persist"})
 * @ORM\JoinColumn(name="developer_id", nullable = true, referencedColumnName="id")
 * @Annotation\Expose()
 * @Annotation\Groups({
 *      "get_client_by_id", "get_bid_id", "for_project_bit", "for_project_bit_admin", "for_all_projects", "get_entity_bits",
 *      "for_projects", "get_all_projects"
 * })
 */
protected $developerId;

/**
 * @var Users
 *
 * @ORM\ManyToOne(targetEntity="Users", inversedBy="bid", cascade={"persist"})
 * @ORM\JoinColumn(name="author_id", nullable = true, referencedColumnName="id")
 * @Annotation\Expose()
 * @Annotation\Groups({
 *      "get_client_by_id", "get_bid_id", "for_project_bit", "for_project_bit_admin", "for_all_projects", "get_entity_bits",
 *      "for_projects", "get_all_projects"
 * })
 */
protected $author;

/**
 * @var Project
 *
 * @ORM\ManyToOne(targetEntity="Project", inversedBy="bit")
 * @ORM\JoinColumn(name="project_id", referencedColumnName="id", onDelete="CASCADE")
 * @Annotation\Expose()
 * @Annotation\Groups({"for_all_projects", "for_project_bit", "for_project_bit_admin", "get_entity_bits"})
 */
private $projectId;

/**
 * @var float
 *
 * @Assert\NotBlank(groups={"post_bid"})
 * @ORM\Column(name="rate", type="float")
 * @Annotation\Expose()
 * @Annotation\Groups({
 *      "get_client_by_id", "get_bid_id", "for_projects", "for_project_bit", "for_project_bit_admin",
 *      "for_all_projects", "get_entity_bits"
 * })
 */
private $rate;

когда я желаю группу сериализаторов для отношений с разработчиками, все в порядке

почему у меня такое происходит и как исправить? :)


person shuba.ivan    schedule 04.07.2016    source источник
comment
покажите, пожалуйста, свой класс Bit   -  person LBA    schedule 04.07.2016
comment
$ биты содержат бит или проекты с ассоциированной коллекцией битов?   -  person LBA    schedule 04.07.2016
comment
Если вы используете JMSSerializerBundle, проверьте это: github.com/schmittjoh/JMS   -  person Brejk    schedule 04.07.2016


Ответы (1)


Попробуйте следующее:

$view = View::create()
    ->setStatusCode(200)
    ->setData($bits)
    ->setSerializationContext(
        SerializationContext::create()
            ->setGroups(
                array('for_project_bit')
            )
    );

return $this->handleView($view);
person johnanthonyboyd    schedule 22.09.2016