自定义 request 类,为什么无法获取 IP,而且 $request->server 也是空的

1. 运行环境

laravel: 8.73.2
php: 7.4.x
web: php artisan serve
OS: windows 10

4). 业务环境

刚从 github 拉取的代码,我的项目中有这个问题,就来试试原版是不是也这样,结果还是一样的结果,不是我想要的

5). 相关软件版本

2. 问题描述?

子定义的 request 类无法获取ip ,查看后,server 也是空的,请问如何自定义请求类呢?
测试代码就是下面这2个

namespace App\Http\Requests;

use Illuminate\Http\Request;

class TestRequest extends Request
{
}
Route::get('/', function (App\Http\Requests\TestRequest $request) {
    return response()->json([
        'ip' => $request->ip(),
        'url' => $request->getUri()
    ]);
});
# 测试
curl -i http://127.0.0.1:8000

3. 您期望得到的结果?

返回json : {“ip”:xxxx,”url”:”http://localhost"}

4. 您实际得到的结果?

{“ip”:null,”url”:”http://:/“}

世界上最遥远的距离不是生与死,而是你亲手制造的BUG就在你眼前,你却怎么都找不到ta。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 3

nginx的话,需要定义转发ip和host。类nginx的服务器都需要转发

2年前 评论
kis龍 (楼主) 2年前

继承 Illuminate\Foundation\Http\FormRequest 类,

或者使用命令行 php artisan make:request TestRequest 生成

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!