我正在更新API端点中的数据。因为,我使用表单请求验证来保持验证与控制器的分离。
这可以很好地处理Store请求。
但是,当我尝试更新下面提到的单个数据时,响应返回以下响应数据。
因为,数据已经存储在数据库中了。当我发送更新数据的请求时..它应该返回更新后的数据。但是,它不会返回。
需要帮助才能解决这个问题。
Body中的JSON数据:
{
"title": "Question Changed 2"
}
当前响应:
{
"question_type": [
"Question Type is Required!"
],
"question": [
"Question is Required!"
],
"is_required": [
"Is Require Value is Required"
]
}
QuestionRequest:
public function rules()
{
return [
'question_type' => 'required | min:3 | max:10',
'title' => 'required | min:5 | max:100',
'question' => 'required | min:5 | max:255',
'description' => 'min:10 | max:255',
'is_required' => 'required',
];
}
更新:
public function update(QuestionRequest $request, Question $question)
{
$question = $question->update($request->all());
return response()->json($question, 200);
}
发布于 2019-11-07 10:56:24
您需要使用Docs中提到的有时验证规则
在某些情况下,您可能希望仅当字段出现在输入数组中时才对该字段运行验证检查。要快速完成此操作,请将有时规则添加到您的规则列表中
您可以将rules
数组更改为
return [
'question_type' => 'sometimes|required | min:3 | max:10',
'title' => 'sometimes|required | min:5 | max:100',
'question' => 'sometimes|required | min:5 | max:255',
'description' => 'sometimes|min:10 | max:255',
'is_required' => 'sometimes|required',
];
这样,只有在请求中存在这些字段时,才会运行对这些字段的验证。
发布于 2019-11-07 12:04:46
如果有人需要解决方案,我正在更新答案:
我简单地将条件逻辑放在请求验证规则中,如下所示。根据@ascsoftw增加了,有时会根据@ascsoftw更新数据。
public function rules()
{
switch($this->method())
{
case 'POST':
{
return [
'question_type' => 'required | min:3 | max:10',
'title' => 'required | min:5 | max:100',
'question' => 'required | min:5 | max:255',
'description' => 'min:10 | max:255',
'is_required' => 'required',
];
}
break;
case 'PUT':
{
return [
'question_type' => 'sometimes | required | min:3 | max:10',
'title' => 'sometimes | required | min:5 | max:100',
'question' => 'sometimes | required | min:5 | max:255',
'description' => 'sometimes | min:10 | max:255',
'is_required' => 'sometimes | required',
];
}
break;
default:
break;
}
}
发布于 2021-11-21 13:39:02
`return [
'question_type' => 'sometimes|required | min:3 | max:10',
'title' => 'sometimes|required | min:5 | max:100',
'question' => 'sometimes|required | min:5 | max:255',
'description' => 'sometimes|min:10 | max:255',
'is_required' => 'sometimes|required',
];
https://stackoverflow.com/questions/58747140
复制相似问题