Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用Symfony将嵌套JSON反序列化为实体_Php_Json_Symfony_Json Deserialization - Fatal编程技术网

Php 使用Symfony将嵌套JSON反序列化为实体

Php 使用Symfony将嵌套JSON反序列化为实体,php,json,symfony,json-deserialization,Php,Json,Symfony,Json Deserialization,如何使用Symfony将照片集合反序列化为照片实体 这是我的json: { "id": 3, "status": 1, "title": "sometitle", "agency": { "id": 1, "name": "AgencyName", ... "created_at": "-0001-11-30T00:00:00+01:00", "updated_at": "-0001-

如何使用Symfony将
照片
集合反序列化为
照片
实体

这是我的json:

{
    "id": 3,
    "status": 1,
    "title": "sometitle",
    "agency": {
        "id": 1,
        "name": "AgencyName",
        ...
        "created_at": "-0001-11-30T00:00:00+01:00",
        "updated_at": "-0001-11-30T00:00:00+01:00"
    },
    "price": "123123",
    ...
    "created_at": "-0001-11-30T00:00:00+01:00",
    "updated_at": "-0001-11-30T00:00:00+01:00",
    "photos": [
        {
            "id": 1,
            "path": "img1.jpg",
            "created_at": "2018-04-05T15:29:47+02:00",
            "updated_at": "2018-04-05T15:29:47+02:00"
        },
        {
            "id": 2,
            "path": "img2.jpg",
            "created_at": "2018-04-05T15:35:28+02:00",
            "updated_at": "2018-04-05T15:35:28+02:00"
        }
    ]
}
我如何在
Photo
实体中指定它应该将集合作为manytone使用

这不起作用:

\Entity\Photo.php
/**
 * @ORM\ManyToOne(targetEntity="House", inversedBy="photos")
 */
private $house;

\Entity\House.php
/**
 * @ORM\OneToMany(targetEntity="Photo", mappedBy="house")
 */
private $photos;
在我看来,当我称之为:

{% for photo in house.photos %}
    <li>{{ photo.path }}</li>
{% endfor %}
{%for photo in house.photos%}
  • {{photo.path}
  • {%endfor%}

    它正在抛出一个异常,并试图将另一个GET请求发送到API中的不同路由,而不是仅使用嵌套集合

    您可以使用Symfony序列化程序组件:

    例如:

    $house = $serializer->deserialize($json, House::class, 'json');
    

    $stuff=json_decode($json,true);//确实,要保留assoc.$stuff['photos'][0]['path']将是第一张照片的路径,因此您可以执行以下操作。。。对于$stuff中的照片['photos'],我猜你是否解码了这个。我不擅长Symphony,所以我只知道如何使用核心PHP。。。Json解码&然后像assoc数组一样访问所需的值:)可能重复:@MathieuDormeval不确定是否是。我想构建一个web应用程序,它不需要连接到mysql,只使用API请求来管理数据。所以我和医生一起去了。我可能得换别的东西了。你能推荐什么吗?