【发布时间】:2023-04-02 17:53:01
【问题描述】:
我尝试在使用 JMS 序列化器进行反序列化期间从数据库(Symfony、Doctrine)加载对象。假设我有一个简单的足球 api 应用程序,两个实体 Team 和 Game,id 为 45 和 46 的球队已经在 db 中。
从 json 创建新游戏时:
{
"teamHost": 45,
"teamGues": 46,
"scoreHost": 54,
"scoreGuest": 42,
}
游戏实体:
class Game {
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Team")
* @ORM\JoinColumn(nullable=false)
*/
private $teamHost;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Team")
* @ORM\JoinColumn(nullable=false)
*/
private $teamGuest;
我想创建一个 Game 对象,该对象已经从数据库中加载了团队。
$game = $this->serializer->deserialize($requestBody, \App\Entity\Game::class, 'json');
寻找解决方案我发现了类似jms_serializer.doctrine_object_constructor 的内容,但文档中没有具体示例。
您能帮我在反序列化期间从数据库中创建一个对象吗?
【问题讨论】:
标签: symfony serialization deserialization jms-serializer