新在Symfoob娱乐下载ny 6.3:映射请求数据类型的对象
2023年4月20日·发表的哈维尔Eguiluz
ob娱乐下载Symfony 6.3是支持由:
Les-Tilleuls。鸡笼是70 + Symfony的团队专家可以ob娱乐下载帮助您设计、开发和修复您的项目。我们提供广泛的专业服务,包括开发、咨询、指导、培训和审计。我们还在JS高技能,去DevOps。我们是一个工人合作!
提供的
康斯坦丁·Myakshin
在# 49138。
反复出现的Symfonyob娱乐下载特性请求在过去几年已经传入的请求数据类型对象的映射DTO(数据传输对象)。在Syob娱乐下载mfony 6.3我们最后介绍一些新属性映射请求类型对象和验证。
首先,# (MapRequestPayload)
属性的数据$ _POST
PHP superglobal(通过$请求- >请求- >所有()
的方法ob娱乐下载Symfony请求对象),并试图填充给定类型的对象。
考虑下面的DTO类:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
/ /……使用ob娱乐下载\组件\验证器\约束作为断言;类ProductReviewDto{公共函数__construct(#【维护\ NotBlank】#【维护\长度(最小值:10马克斯:500年))公共只读的字符串美元评论#【维护\ GreaterThanOrEqual(1)】#【维护\ LessThanOrEqual(5))公共只读的int美元评级,){}}
在Syob娱乐下载mfony 6.3中,使用这个类作为type-hint一些控制器的参数和应用# (MapRequestPayload)
属性。ob娱乐下载Symfony将自动请求数据映射到DTO对象并将验证:
1 2 3 4 5 6 7 8 9 10 11 12 13
/ /……使用ob娱乐下载\组件\HttpKernel\属性\MapRequestPayload;类ProductApiController{公共函数__invoke(# MapRequestPayload ProductReviewDto美元productReview,):响应{/ /这里,productReview美元是一种完全类型表示请求的数据}}
这是所有。关于可能的映射数据时错误条件:
- 验证错误将导致HTTP
422年
错误响应(包括序列化ConstraintViolationList
对象); - 畸形的数据将与HTTP响应
400年
错误的反应; - 不支持的反序列化格式将与HTTP响应
415年
错误的反应。
类似地,# (MapQueryString)
需要的数据$ _GET
PHP superglobal(通过$请求- >查询- >所有()
的方法ob娱乐下载Symfony请求对象),并试图填充给定类型的对象。
考虑以下的DTO类:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27日28
/ /……使用ob娱乐下载\组件\验证器\约束作为断言;类OrdersQueryDto{公共函数__construct(#[断言有效\]公共只读的? OrdersFilterDto美元过滤器#【维护\ LessThanOrEqual(500年))公共只读的int美元限制=25#【维护\ LessThanOrEqual(10_000))公共只读的int美元抵消=0,){}}类OrdersFilterDto{公共函数__construct(#[断言\选择([“放置”,“运”,“交付”]))公共只读的?字符串美元状态、公共只读的?浮动美元总,){}}
在Syob娱乐下载mfony 6.3中,使用这个类作为type-hint一些控制器的参数和应用# (MapQueryString)
属性。ob娱乐下载Symfony将自动请求数据映射到DTO对象并将验证:
1 2 3 4 5 6 7 8 9 10 11 12 13
/ /……使用ob娱乐下载\组件\HttpKernel\属性\MapQueryString;类SearchApiController{公共函数__invoke(# MapQueryString OrdersQueryDto美元查询,):响应{/ /在这里,美元请求数据的查询是一个完全类型表示}}
验证逻辑,这个属性的错误条件是相同的。此外,两个属性允许自定义序列化上下文和类用于将请求映射到对象:
1 2 3 4 5 6 7 8 9 10 11
# [MapRequestPayload (serializationContext:(“……”),解析器:App \…\ProductReviewRequestValueResolver )] ProductReviewDto美元productReview# [MapQueryString (serializationContext:(“……”),解析器:App \…\OrderSearchRequestValueResolver )] OrdersQueryDto美元查询
发表在#生活在边缘
评论
Valentin Udaltsov
在4月20日表示,2023年在42
很酷的功能!SearchApiController中有一个错误的片段:MapRequestPayload代替MapQueryString是进口的。
@Valentin谢谢报告错误。现在是固定的。谢谢。
罗马Allenstein
在4月21日表示,2023年在06:28
很好的特性,等待多年。✌️
爱它Symfony如何提ob娱乐下载高释放释放。
爱它Symfony如何提ob娱乐下载高释放释放。
Marcin Joźwikowski
说在4月25日,2023年在08:36
强大的功能!
我一直在等待这样的很长一段时间!
我一直在等待这样的很长一段时间!
Fahari Hamada Sidi is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now