流明验证只允许一个获取参数

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().