我使用Symfony2和FOSRestBundle创建一个RESTful应用程序。 FOSRestBundle使用JMS Seriazlizer将数据序列化为json格式。我有一切都在处理一个小问题。
这是我的实体类
class Profil
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="secteur", type="string", length=255)
*/
private $secteur;
/**
* @var string
*
* @ORM\Column(name="nomProfil", type="string", length=255, unique=true)
*/
private $nomProfil;
/**
* @ORM\Column(name="actif", type="boolean")
*/
private $actif;
/**
* @ORM\Column(name="dateFin", type="date")
*/
private $dateFin;
/**
* @ORM\Column(name="orderNumberMTC", type="integer", length=100, nullable=true)
*/
private $orderNumberMTC;
/**
* @Gedmo\Slug(fields={"nomProfil"})
* @ORM\Column(length=128, unique=true)
*/
private $slug;
/**
* @ORM\OneToOne(targetEntity="Genius\ProfileBundle\Entity\Societe", cascade={"persist", "remove"})
*/
private $societe;
/**
* @ORM\OneToOne(targetEntity="Genius\ProfileBundle\Entity\Coordonnees", cascade={"persist", "remove"})
*/
private $coordonnees;
/**
* @ORM\OneToMany(targetEntity="Genius\ProfileBundle\Entity\Professionnel", mappedBy="profil", cascade={"persist", "remove"})
*/
private $professionnels;
/**
* @ORM\OneToMany(targetEntity="Genius\ProfileBundle\Entity\Lien", mappedBy="profil",cascade={"persist"}, cascade={"persist", "remove"})
*/
private $liens;
/**
* @ORM\OneToMany(targetEntity="Genius\ProfileBundle\Entity\Album", mappedBy="profil",cascade={"persist"}, cascade={"persist", "remove"})
*/
private $albums;
/**
* @ORM\OneToMany(targetEntity="Genius\ProfileBundle\Entity\Photo", mappedBy="profil",cascade={"persist"}, cascade={"persist", "remove"})
*/
private $photos;
/**
* @ORM\OneToMany(targetEntity="Genius\ProfileBundle\Entity\Actualite", mappedBy="profil",cascade={"persist"}, cascade={"persist", "remove"})
*/
private $actualites;
控制器操作:
public function getActualitesAction(Request $request, ParamFetcherInterface $paramFetcher)
{
$offset = $paramFetcher->get('offset');
$offset = null == $offset ? 0 : $offset;
$limit = $paramFetcher->get('limit');
return $this->container->get('genius_profile.actualite.handler')->all($limit, $offset);
//var_dump($this->container->get('genius_profile.profil.handler')->all($limit, $offset)); die();
}
genius_profile.actualite.handler是一个ORM
这是json我得到的:
我试图通过Annotation Type
强制将属性actualitie
添加到数组中
任何想法如何强制属性到数组?
中的报告问题答案 0 :(得分:0)
您可能会在某处过滤您的收藏或使用自定义键构建它,因此阵列的键不是按顺序排列的(例如[0 => Object, 2 => Object]
没有1
键)所以&#39 ; s序列化为对象(表示关联数组)而不是数组。
您应该为此字段创建虚拟属性或自定义访问者,并将集合返回为array_values(...)
,以便正确排序密钥,并将集合序列化为数组。