流明验证只允许一个获取参数
Lumen Validation allow only one Get Parameter
在我的项目中,我使用 Lumen,我想对我的 GET 请求实施某种验证。
示例 URL 如下所示:
[URL]/blubb/bla?tags[]=1&tags[]=2
在我的代码中,我这样验证 URL:
public function handleRequest(Request $request)
{
try {
$validatedData = $this->validate($request, [
'tags' => 'nullable|array'
]);
} catch (ValidationException $th) {
// return Error.
}
// go on.
}
我的问题是,如果用户使用像这样的 URL,验证不会触发并“继续”。部分被调用。
[URL]/blubb/bla?invalidParameter=1
有没有办法只允许一种“种类”的 GET 参数?
编辑:
“标签”可以为空,因为可以在没有任何 GET 参数的情况下调用我的 API 端点。
您可以使用 $request->all()
获取完整数组并查看键。
$paramValidation = $request->all()
unset $paramValidation['tags'];
if (count($paramValidation)) {
// error
}
但是,也许您只想忽略其他参数。看看方法 $request->validated()
.
在我的项目中,我使用 Lumen,我想对我的 GET 请求实施某种验证。
示例 URL 如下所示:
[URL]/blubb/bla?tags[]=1&tags[]=2
在我的代码中,我这样验证 URL:
public function handleRequest(Request $request)
{
try {
$validatedData = $this->validate($request, [
'tags' => 'nullable|array'
]);
} catch (ValidationException $th) {
// return Error.
}
// go on.
}
我的问题是,如果用户使用像这样的 URL,验证不会触发并“继续”。部分被调用。
[URL]/blubb/bla?invalidParameter=1
有没有办法只允许一种“种类”的 GET 参数?
编辑: “标签”可以为空,因为可以在没有任何 GET 参数的情况下调用我的 API 端点。
您可以使用 $request->all()
获取完整数组并查看键。
$paramValidation = $request->all()
unset $paramValidation['tags'];
if (count($paramValidation)) {
// error
}
但是,也许您只想忽略其他参数。看看方法 $request->validated()
.