$request->validated() 不仅返回已验证的项目,还返回所有内容



我使用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验证

相关内容

  • 没有找到相关文章

最新更新