我在API平台上使用Symfony 5。 我的问题是在我的实体Comment.php上,我想有一个父注释和对此注释的响应(例如Facebook上的注释)。
这是我的Comment.php实体:
class Comment
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="text")
*/
private $content;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Comment", inversedBy="Comment")
*/
private $parent;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $likecomment;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $dislike;
/**
* @var \DateTime
*
* @ORM\Column(name="date", type="datetime")
* @var string A "d-m-Y" formatted value
*/
private $date;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="comments")
*/
private $author;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Post", inversedBy="comments")
*/
private $post;
为此,我只需要一个实体,就不能是一个实体注释,也不能是一个实体响应,因为在将来,它可能会具有多个响应级别(响应等)。 / p>
现在,我在Postman上得到这样的结果,并带有GET注释:
{
"@id": "/api/comments/8",
"@type": "Comment",
"id": 8,
"content": "Dolor laudantium voluptatem corporis dolores a vel voluptatibus. Hic maiores dignissimos adipisci non aut commodi. Sed voluptate dolorum laboriosam.",
"likecomment": 9,
"dislike": 1,
"author": "/api/users/2",
"parent": "/api/comments/2",
"date": "2019-12-22T12:33:30+01:00"
},
{
"@id": "/api/comments/45",
"@type": "Comment",
"id": 45,
"content": "Distinctio aut ipsam animi quod qui accusamus iste. Consequatur qui dolorum quis maxime qui voluptates. Totam voluptas provident officiis iste repudiandae. Odio reiciendis ut est dolores.",
"likecomment": 4,
"dislike": 1,
"author": "/api/users/9",
"date": "2019-07-05T02:27:30+02:00"
},
当它是响应时,它在json中有一个父级,但是当它是不带父项的注释时,我们在json中没有父级。 我想要一个像这样的json
"@id": "/api/comments/8",
"@type": "Comment",
"id": 8,
"content": "Dolor laudantium voluptatem corporis dolores a vel voluptatibus. Hic maiores dignissimos adipisci non aut commodi. Sed voluptate dolorum laboriosam.",
"likecomment": 9,
"dislike": 1,
"author": "/api/users/2",
"parent": {
"@id": "/api/comments/2",
"content": ".........",
"likecomment
},
"date": "2019-12-22T12:33:30+01:00"