API Platform手动插入数据库

时间:2019-07-14 14:03:07

标签: php api symfony api-platform.com

我想手动在数据库中插入信息,因为当我收到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?

0 个答案:

没有答案