API-Platform 提供了一种简单的方式将请求数据转换为实体对象,可以通过在实体类中使用注解来实现。
例如,假设我们有一个“User”实体类,包含“id”、“name”和“email”属性:
id;
}
public function getName(): ?string
{
return $this->name;
}
public function setName(string $name): self
{
$this->name = $name;
return $this;
}
public function getEmail(): ?string
{
return $this->email;
}
public function setEmail(string $email): self
{
$this->email = $email;
return $this;
}
}
在上面的代码中,我们使用了“@ApiResource”注解来告诉 API-Platform,这个实体类可以通过 API 进行操作。在“post”操作中,我们使用了“deserialize”选项来指示 API-Platform 不要自动将请求数据转换为实体类。这允许我们手动控制数据的转换,从而可以进行更多的验证和过滤。
现在我们可以在我们的控制器或服务中生成一个新的“User”对象,并将请求数据转换为实体对象,如下所示:
serializer = $serializer;
}
public function createUser(Request $request): User
{
$requestData = json_decode($request->getContent(), true);