我正在使用FOSRestBundle并尝试在我的数据库中发布新的server
我的服务器实体包含ManyToMany
和OneToMany
个引用
// SERVER ENTITY
/**
* @var int
*
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(type="string", length=64)
*/
private $name;
// OTHER SIMPLE FIELD
/**
* @var Os
*
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Os", inversedBy="servers")
* @ORM\JoinColumn(referencedColumnName="id", nullable=true)
*/
private $os;
/**
* @var ServiceIp[]|ArrayCollection
*
* @ORM\OneToMany(targetEntity="AppBundle\Entity\ServiceIp", mappedBy="server")
*/
private $serviceIps;
我在 API中<{1}} postAction
ServerController
我发送一个带有JSON主体的POST请求来设置新数据
// $server is the request body
public function postAction(Server $server, ConstraintViolationListInterface $validationErrors)
{
if ($validationErrors->count() > 0) {
return $this->handleBodyValidationErrorsView($validationErrors);
}
$em = $this->getDoctrine()->getManager();
$em->persist($server);
$em->flush();
return $this->view($server);
}
但是当我发送此请求时,{
"name": "test",
"os": [
{
"id": 1
}
]
}
为空
os
此操作适用于{
"id": null,
"name": "test",
"os": {
"id": null,
"slug": null,
"name": null
}
}
等简单字段,但不适用于复杂字段。
如何在请求之前获取我身体中name
设置的当前os
值?
这是制作它的好方法吗?
感谢您的帮助。