我正在尝试将一个简单的JSON对象数组传递给Laravel,而我的验证器却失败了。我不确定这是否与Postman
或Laravel
验证程序本身有关。
从邮递员传递数据:
semester:1
academic_year:2
civil_year:2016
course_id:1
periods[0]:{ "id": 2, "starts": '2018-01-01', "end": '2018-06-01' }
Laravel验证程序:
Validator::validate($request->all(), [
'semester' => 'integer|between:1,2',
'academic_year' => 'required|integer|between:1,4',
'civil_year' => 'required|integer|between:' . date('Y', strtotime('-5 years')) . ',' . date('Y', strtotime('+5 years')),
'course_id' => 'required|integer|exists:courses,id',
'periods' => 'required|array|between:1,4',
'periods.*' => 'required|json'
]);
验证者返回:
{
"message": "The given data was invalid.",
"errors": {
"periods.0": [
"The periods.0 must be a valid JSON string."
]
}
}
我尝试过的事情
我尝试将raw
的请求作为Postman
传递,但没有运气:
此外,我尝试插入标头
Accept:application/json
Content-Type:application/json
答案 0 :(得分:1)
我使用邮递员进行了测试,如果我像在这里那样使用单引号,则验证将失败:
{ "id": 2, "starts": '2018-01-01', "end": '2018-06-01'}
尝试使用这样的双引号:
{ "id": 2, "starts": "2018-01-01", "end": "2018-06-01"}
它应该通过。
答案 1 :(得分:0)
我刚刚添加了两个字符串
Accept: application/json
Content-Type: application/json
效果很好。