【发布时间】:2019-10-24 03:30:07
【问题描述】:
我使用 Lumen 开发了一个 REST API。我认为在 JSON 对象中使用 details 键很方便显示错误。查看回复:
{"detail": "Something bad happened."}
Lumen 具有验证,您可以在控制器内部调用,如 $this->validate(["foo" => "required", "bar" => "required"})。如果我没有在请求体中设置foo值,服务器自然会响应:
{
"foo": [
"The foo field is required."
]
}
但是,我也希望这些在 details 键内,以便消费者使用。查看所需的响应:
{
"details": {
"foo": [
"The foo field is required."
]
}
}
是否可以这样做,如果可以,怎么做?
进一步调查
正如Validation section in Lumen documentation 所说:
如果验证失败,$this->validate 帮助程序将抛出 Illuminate\Validation\ValidationException 并嵌入包含所有相关错误消息的 JSON 响应。
这意味着我需要以某种方式扩展ValidationException,但我仍然不知道如何在$this->validate 方法中触发我的CustomValidationException。
环境
- PHP 7.3.5
- 流明 5.8
【问题讨论】: