Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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 如何在API平台中显示嵌套文档_Php_Symfony_Api Platform.com - Fatal编程技术网

Php 如何在API平台中显示嵌套文档

Php 如何在API平台中显示嵌套文档,php,symfony,api-platform.com,Php,Symfony,Api Platform.com,我试图将嵌套文档显示为默认值,这意味着当我查询api时,它应该返回文档及其关系 我的两个实体: <?php namespace App\Entity; use ApiPlatform\Core\Annotation\ApiResource; use App\Traits\TimestampableTrait; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collecti

我试图将嵌套文档显示为默认值,这意味着当我查询api时,它应该返回文档及其关系

我的两个实体:

<?php

namespace App\Entity;

use ApiPlatform\Core\Annotation\ApiResource;
use App\Traits\TimestampableTrait;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ApiResource()
 * @ORM\Entity(repositoryClass="App\Repository\ClaimRepository")
 * @ORM\Table("claims")
 */
class Claim
{
    use TimestampableTrait;

    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $name;

    /**
     * @ORM\OneToMany(targetEntity="App\Entity\Activity", mappedBy="claim", cascade={"persist", "remove"})
     */
    private $activities;

    /**
     * @ORM\ManyToMany(targetEntity="App\Entity\ClaimState", inversedBy="claims", cascade={"persist", "remove"})
     * @ORM\OrderBy({"id" = "desc"})
     */
    private $states;
我想得到这样的东西:

{
  "data": {
    "id": "/claims/7",
    "type": "Claim",
    "attributes": {
      "_id": 7,
      "name": "My Valid Claim",
      "created": "2019-01-07T15:14:21+01:00",
      "updated": "2019-01-07T15:14:21+01:00"
    },
    "relationships": {
      "activities": {
        "data": [
          {
            "type": "Activity",
            "id": "/activities/7",
            "attributes": {
              "_id": 7,
              "name": "Activity no. 1",
              "created": "2019-01-07T15:14:21+01:00",
              "updated": "2019-01-07T15:14:21+01:00"
            },
            "relationships": {
              "invoices": {
                "data": [
                  {
                    "type": "Invoice",
                    "id": "/invoices/7",
                    "attributes": {
                      "_id": 7,
                      "vendor": "Vendor Ltd."
                    }
                  }
                ]
              }
            }
          }
        ]
      }
    }
  }
}
使用的格式是JSON:API。我试着使用组,但根本没有帮助,我在任何文档中都找不到任何东西

感谢您的帮助

因此,在您的示例中,将normalizationContext={groups={claim}}添加到声明实体中,@groups{claim}添加到声明属性中,然后将@Groupsclaim添加到要嵌入到响应中的活动类的属性中


因此,在您的示例中,将normalizationContext={groups={claim}}添加到声明实体,@groups{claim}添加到声明属性,然后将@Groupsclaim添加到要嵌入到响应中的活动类的属性。

它应该适用于组,您可以发布您尝试的内容吗?它应该适用于组,你可以发布你尝试过的内容吗?你实际上也可以在活动实体中使用@Groups{claim},这样,如果将来任何时候你需要在那里添加新组,你就是未来证明。你实际上也可以在活动实体中使用@Groups{claim},这样,如果将来任何时候你需要在那里添加新组,你就是未来证明。
{
  "data": {
    "id": "/claims/7",
    "type": "Claim",
    "attributes": {
      "_id": 7,
      "name": "My Valid Claim",
      "created": "2019-01-07T15:14:21+01:00",
      "updated": "2019-01-07T15:14:21+01:00"
    },
    "relationships": {
      "activities": {
        "data": [
          {
            "type": "Activity",
            "id": "/activities/7"
          }
        ]
      }
    }
  }
}
{
  "data": {
    "id": "/claims/7",
    "type": "Claim",
    "attributes": {
      "_id": 7,
      "name": "My Valid Claim",
      "created": "2019-01-07T15:14:21+01:00",
      "updated": "2019-01-07T15:14:21+01:00"
    },
    "relationships": {
      "activities": {
        "data": [
          {
            "type": "Activity",
            "id": "/activities/7",
            "attributes": {
              "_id": 7,
              "name": "Activity no. 1",
              "created": "2019-01-07T15:14:21+01:00",
              "updated": "2019-01-07T15:14:21+01:00"
            },
            "relationships": {
              "invoices": {
                "data": [
                  {
                    "type": "Invoice",
                    "id": "/invoices/7",
                    "attributes": {
                      "_id": 7,
                      "vendor": "Vendor Ltd."
                    }
                  }
                ]
              }
            }
          }
        ]
      }
    }
  }
}