【问题标题】:Lumen Validation allow only one Get Parameter流明验证只允许一个获取参数
【发布时间】:2020-10-08 16:18:14
【问题描述】:

在我的项目中,我使用 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 端点。

【问题讨论】:

    标签: php lumen


    【解决方案1】:

    您可以使用 $request->all() 获取完整数组并查看键。

    $paramValidation = $request->all()
    unset $paramValidation['tags'];
    if (count($paramValidation)) {
        // error
    }
    

    但是,也许您只是想忽略其他参数。看看方法$request->validated()

    【讨论】:

    • 工作 :) 谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-09
    • 2017-01-22
    • 1970-01-01
    • 2016-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多