gpt4 book ai didi

laravel - 如何验证 REST Lumen/Laravel 请求中的参数?

转载 作者:行者123 更新时间:2023-12-02 18:43:07 25 4
gpt4 key购买 nike

路线:$app->get('/ip/{ip}', GeoIpController::class . '@show');

如何正确验证 ip?我尝试在 show 方法中注入(inject) Request 对象,但无法解决此问题。我想坚持使用 REST,因此使用 URL 参数对我来说不是解决方案。我将其用于 API 目的,因此状态代码作为响应是合适的。

也尝试过这种方式:

$app->bind('ip', function ($ip) {
$this->validate($ip, [
'ip' => 'required|ip',
]);
});

编辑:下面的答案是正确的,我在文档中找到了有关 requests 的更多信息:

Form requests are not supported by Lumen. If you would like to use form requests, you should use the full Laravel framework.

换句话说,您无法通过在 Lumen 的构造函数中注入(inject)来使用自定义请求

最佳答案

validate 方法将请求对象作为第一个参数。由于您要在路由中传递 IP,因此需要创建一个自定义验证器。

public function show($ip)
{
$data = ['ip' => $ip];

$validator = \Validator::make($data, [
'ip' => 'required|ip'
]);

if ($validator->fails()) {
return $validator->errors();
}

return response()->json(['All good!']);
}

编辑:这就是 Laravel 在幕后所做的所有事情。基本上你可以直接使用这个函数来验证ip并节省很多精力。

protected function validateIp($ip)
{
return filter_var($ip, FILTER_VALIDATE_IP) !== false;
}

关于laravel - 如何验证 REST Lumen/Laravel 请求中的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44109421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com