Храните данные с API-платформой

Я хочу сохранить какой-то объект, я передаю свои параметры, но сеттер не работает

Моя сущность выглядит так:

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use JMS\DiExtraBundle\Annotation\Inject;
use Symfony\Component\Serializer\Annotation\Groups;
/**
* Project
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="AppBundle\Entity\ProjectRepository")
*/
class Project
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
* @Groups({"Project"})
*/
private $id;

/**
* @var string
*
* @ORM\Column(name="name", type="string", length=45)
* @Groups({"Project"})
*/
private $name;

/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Project", cascade={"remove"})
* @ORM\JoinColumn(nullable=true, onDelete="CASCADE")
* @Groups({"Project"})
*/
private $parent;

/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Status")
* @ORM\JoinColumn(nullable=true)
* @Groups({"Project"})
*/
private $status;

И мой сервис.

resource.project.search_filter:
parent:    "api.doctrine.orm.search_filter"arguments: [ { id: "exact", name: "partial", parent: ~ } ]
resource.project.order_filter:
parent:    "api.doctrine.orm.order_filter"arguments: [ { "id": ~, "name": ~ } ]

resource.project:
parent:    "api.resource"arguments: [ "AppBundle\\Entity\\Project" ]
calls:
-      method:    initNormalizationContext
arguments: [ { groups: [ Project ] } ]
-      method:    "initFilters"arguments: [ [ "@resource.project.search_filter", "@resource.project.order_filter"] ]
tags:      [ { name: "api.resource" } ]

Я не понимаю, как работает запрос POST, потому что ни одно из моих свойств объекта не определено.

Он работает с демо-сущностями, но не с моими, я пропустил некоторые аннотации? или мой конфиг не завершен?

0

Решение

Попробуйте передать свою сущность следующим образом:

с одним ударом

arguments: [ "AppBundle\Entity\Project" ]

Или, если вы передаете свою сущность в хранилище, выполните следующие действия.

аргументы: [«AppBundle: Проект»]

и поместите следующую аннотацию в ваш репозиторий

 * @ORM\Entity(repositoryClass="AppBundle\Repository\ProjectRepository")
0

Другие решения

Других решений пока нет …