我想手动在数据库中插入信息,因为当我收到POST请求时,我没有ID,但有名称(API平台假定我们提供了ID)。
例如,我有一个Category实体:
<?php
class Category
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
*/
private $name;
}
和文章:
<?php
class Article
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Category")
*/
private $category;
/**
* @ORM\Column(type="string", length=255)
*/
private $title;
}
现在我要发出这样的文章POST请求:
{
"title": "my title",
"category": "category_name"
}
我想手动执行以下操作(使用$data
JSON请求):
<?php
$em = $this->getDoctrine()->getManager();
$category = new Category();
$category->setName($data->category);
$article = new Article();
$article->setTitle($data->title);
$article->setCategory($category);
$em->persist($article);
$em->flush();
我可以使用自定义操作正确执行此操作吗?为什么API平台如此愚蠢,以至于假设我知道类别ID?