从Rest API返回中删除数组

时间:2018-09-17 08:50:44

标签: php symfony symfony-3.4

我在项目上使用rest api,但遇到了问题。我的实体字段:

/**
 * @ORM\OneToMany(targetEntity="AppBundle\Entity\Config", mappedBy="test", cascade={"persist"})
 * @Serializer\Expose
 * @Serializer\Groups({"v2"})
 */
private $configurations;
....
public function __construct()
{
    $this->configurations = ArrayCollection();
}

我的回报是:

 "configurations": [
    {
        "id": 52,
        "name": null,
    }
],

但是我想删除数组并只返回对象配置,例如:

"configurations": {
    "id": 52,
    "name": null,
}

因此,想法是从配置数组中仅获取一项并返回。请帮助我。

2 个答案:

答案 0 :(得分:0)

如果您正在使用Jms,则可以使用类似onPreSerialize方法的事件。比您应该将第一个元素放在虚拟属性中。

答案 1 :(得分:0)

您可以做类似的事情。

添加属性并使用Accessor注释。

/**
 * @Serializer\Accessor(getter="getFirstConfiguration")
 */
private $firstConfiguration;

public function getFirstConfiguration()
{
    return $this->configurations->first();
}