自定义 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。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 3

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

1周前 评论
kis龍 (楼主) 1周前

继承 Illuminate\Foundation\Http\FormRequest 类,

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

1周前 评论

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