我使用FormRequest
来验证数据,看起来像这样:
public function authorize(): bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules(): array
{
return [
'first_name' => ['required', 'string', 'max:255']
];
}
但是如果我发送这样的请求:
{
"first_name": "Random",
"last_name": "Guy"
}
然后$request->validated(),就像下面的例子一样,同时返回名字和姓氏。
public function create(UserRequest $request)
{
$data = $request->validated();
return $data;
}
知道为什么会这样吗?据我所知,validated()
必须只返回规则
问题是在嵌套,我接受以下结构的数据:
$rules = [
'userDetails' => ['required', 'array'],
'userDetails.firstName' => ['required', 'string'],
'userDetails.lastName' => ['required', 'string']
]
在userDetails
数组中传递的任何内容都没有被过滤,通过从验证规则中删除'userDetails' => ['required', 'array']
来固定。
看起来没有必要使用array
验证