我正在尝试在表单请求中使用'json' validation rule,但我经常收到无效的JSON消息。我还没有找到关于如何使用这个规则的任何例子,所以我在这里有点迷失。
我的规则功能如下所示:
public function rules()
{
return [
'userData'=>'json',
'securityChanges'=>'json'
]
}
我的JSON看起来像这样:
{
"userData":{
"domicilio":"nowere",
"empresa":"Burgerking",
"name":"zorgito",
"surname": "perez",
"cuit":"10101010"
},
"securityChanges":{
"email": "flasheadas@lolo.com",
"password": "777777777777",
"passwordConfirmation":"777777777777"
}
}
我的标题已正确设置:
Accept: application/json
Content-Type: application/json
它应该有用,但我得到了:
"The user data must be a valid JSON string."
知道这里有什么问题吗?
编辑:
根据请求中的一个答案,我将dd($this->all());
的输出放在我的表单请求类中
array:2 [
"userData" => array:5 [
"domicilio" => "nowere"
"empresa" => "Burgerking"
"name" => "zorgito"
"surname" => "perez"
"cuit" => "10101010"
]
"securityChanges" => array:3 [
"email" => "flasheaasddas@lolo.com"
"password" => "777777777777"
"passwordConfirmation" => "777777777777"
]
]
整个HTTP请求是:
PATCH /api/users/me HTTP/1.1
Host: DOMAIN REMOVED
Authorization: Bearer (TOKEN REMOVED.)
Accept: application/json
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: 73516b63-8556-4c21-9050-7a4fa3a83cb1
{
"userData":{
"domicilio":"nowere",
"empresa":"Burgerking",
"name":"zorgito",
"surname": "perez",
"cuit":"10101010"
},
"securityChanges":{
"email": "flasheaasddas@lolo.com",
"password": "777777777777",
"passwordConfirmation":"777777777777"
}
}
答案 0 :(得分:0)
这里没有任何说明,请发dd($ request-> all())或dd($ this-> all())(如果你直接在请求类中)并确保你有这些字段,并且然后确保字段是有效的json字符串。您可以在此处查看https://jsonlint.com/