wuj*_*ujt 2 validation url get laravel lumen
路线:
$app->get('/ip/{ip}', GeoIpController::class . '@show');
如何正确验证IP?我试图Request在show方法中注入对象,但无法解决此问题。我想坚持使用REST,所以使用URL参数对我来说不是解决方案。我将其用于API目的,因此将状态代码作为响应将是适当的。
也尝试过这种方式:
$app->bind('ip', function ($ip) {
$this->validate($ip, [
'ip' => 'required|ip',
]);
});
Run Code Online (Sandbox Code Playgroud)
编辑:下面的答案是正确的,我requests在文档中找到了更多有关的信息:
流明不支持表单请求。如果您想使用表单请求,则应使用完整的Laravel框架。
换句话说,您不能requests在流明的构造函数中使用通过注入自定义。
该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!']);
}
Run Code Online (Sandbox Code Playgroud)
编辑:这是laravel在后台执行的所有操作。您基本上可以使用此功能直接验证ip并节省大量精力。
protected function validateIp($ip)
{
return filter_var($ip, FILTER_VALIDATE_IP) !== false;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5880 次 |
| 最近记录: |