为了防止网站被攻击,我想在网站受到异常请求时,获取url做个记录,但是$request输出了null,求教各位大神。

我想在框架收到异常请求时,获取该请求的完整url。
我在app/exception/Handler.php中修改了如下内容

use Illuminate\Http\Request;
public function report(Throwable $exception)
    {
        $Request=new Request();
        var_dump($Request);
die;
 parent::report($exception);
}

我认为,正常情况下,var_dump应该能输出包含url,method等信息,可是输出后,全都是空数组,或者直接是null,各位大神,谁知道我错在哪儿了,请教一下,谢谢!

下面是输出request的内容:

object(Illuminate\Http\Request)#43 (29) {
  ["json":protected]=>
  NULL
  ["convertedFiles":protected]=>
  NULL
  ["userResolver":protected]=>
  object(Closure)#213 (3) {
    ["static"]=>
    array(1) {
      ["app"]=>
      object(Illuminate\Foundation\Application)#2 (33) {
        ["basePath":protected]=>
        string(43) "D:\phpstudy_pro\pro\laravelIP\laraip"
        ["hasBeenBootstrapped":protected]=>
        bool(true)
        ["booted":protected]=>
        bool(true)
        ["bootingCallbacks":protected]=>
        array(1) {
          [0]=>
          object(Closure)#163 (2) {
            ["static"]=>
            array(1) {
              ["instance"]=>
              object(Illuminate\Queue\QueueServiceProvider)#157 (1) {
                ["app":protected]=>
                *RECURSION*
              }
            }
            ["this"]=>
            *RECURSION*
          }
        }
        ["bootedCallbacks":protected]=>
        array(1) {
          [0]=>
          object(Closure)#196 (1) {
            ["this"]=>
            object(App\Providers\RouteServiceProvider)#135 (2) {
              ["namespace":protected]=>
              string(20) "App\Http\Controllers"
              ["app":protected]=>
              *RECURSION*
            }
          }
        }
        ["terminatingCallbacks":protected]=>
        array(0) {
        }
        ["serviceProviders":protected]=>
        array(24) {
          [0]=>
          object(Illuminate\Events\EventServiceProvider)#6 (1) {
            ["app":protected]=>
            *RECURSION*
          }
          [1]=>
          object(Illuminate\Log\LogServiceProvider)#8 (1) {
            ["app":protected]=>
            *RECURSION*
          }
          [2]=>
          object(Illuminate\Routing\RoutingServiceProvider)#10 (1) {
            ["app":protected]=>
            *RECURSION*
          }
          [3]=>
          object(Illuminate\Auth\AuthServiceProvider)#41 (1) {
            ["app":protected]=>
            *RECURSION*
          }
          [4]=>
          object(Illuminate\Cookie\CookieServiceProvider)#61 (1) {
            ["app":protected]=>
            *RECURSION*
          }
          [5]=>
          object(Illuminate\Database\DatabaseServiceProvider)#63 (1) {
            ["app":protected]=>
            *RECURSION*
          }
          [6]=>
          object(Illuminate\Encryption\EncryptionServiceProvider)#70 (1) {
            ["app":protected]=>
            *RECURSION*
          }
          [7]=>
          object(Illuminate\Filesystem\FilesystemServiceProvider)#73 (1) {
            ["app":protected]=>
            *RECURSION*
          }
          [8]=>
          object(Illuminate\Foundation\Providers\FormRequestServiceProvider)#79 (1) {
            ["app":protected]=>
            *RECURSION*
          }
          [9]=>
          object(Illuminate\Foundation\Providers\FoundationServiceProvider)#78 (3) {
            ["providers":protected]=>
            array(1) {
              [0]=>
              string(58) "Illuminate\Foundation\Providers\FormRequestServiceProvider"
            }
            ["instances":protected]=>
            array(1) {
              [0]=>
              object(Illuminate\Foundation\Providers\FormRequestServiceProvider)#79 (1) {
                ["app":protected]=>
                *RECURSION*
              }
            }
            ["app":protected]=>
            *RECURSION*
          }
          [10]=>
          object(Illuminate\Notifications\NotificationServiceProvider)#83 (1) {
            ["app":protected]=>
            *RECURSION*
          }
          [11]=>
          object(Illuminate\Pagination\PaginationServiceProvider)#85 (1) {
            ["app":protected]=>
            *RECURSION*
          }
          [12]=>
          object(Illuminate\Session\SessionServiceProvider)#90 (1) {
            ["app":protected]=>
            *RECURSION*
          }
          [13]=>
          object(Illuminate\View\ViewServiceProvider)#94 (1) {
            ["app":protected]=>
            *RECURSION*
          }
          [14]=>
          object(Facade\Ignition\IgnitionServiceProvider)#99 (1) {
            ["app":protected]=>
            *RECURSION*
          }
          [15]=>
          object(Fideloper\Proxy\TrustedProxyServiceProvider)#121 (1) {
            ["app":protected]=>
            *RECURSION*
          }
          [16]=>
          object(Fruitcake\Cors\CorsServiceProvider)#120 (1) {
            ["app":protected]=>
            *RECURSION*
          }
          [17]=>
          object(Carbon\Laravel\ServiceProvider)#124 (1) {
            ["app":protected]=>
            *RECURSION*
          }
          [18]=>
          object(NunoMaduro\Collision\Adapters\Laravel\CollisionServiceProvider)#125 (2) {
            ["defer":protected]=>
            bool(true)
            ["app":protected]=>
            *RECURSION*
          }
          [19]=>
          object(App\Providers\AppServiceProvider)#132 (1) {
            ["app":protected]=>
            *RECURSION*
          }
          [20]=>
          object(App\Providers\AuthServiceProvider)#133 (2) {
            ["policies":protected]=>
            array(0) {
            }
            ["app":protected]=>
            *RECURSION*
          }
          [21]=>
          object(App\Providers\EventServiceProvider)#134 (3) {
            ["listen":protected]=>
            array(1) {
              ["Illuminate\Auth\Events\Registered"]=>
              array(1) {
                [0]=>
                string(59) "Illuminate\Auth\Listeners\SendEmailVerificationNotification"
              }
            }
            ["subscribe":protected]=>
            array(0) {
            }
            ["app":protected]=>
            *RECURSION*
          }
          [22]=>
          object(App\Providers\RouteServiceProvider)#135 (2) {
            ["namespace":protected]=>
            string(20) "App\Http\Controllers"
            ["app":protected]=>
            *RECURSION*
          }
          [23]=>
          object(Illuminate\Queue\QueueServiceProvider)#157 (1) {
            ["app":protected]=>
            *RECURSION*
          }
        }
        ["loadedProviders":protected]=>
        array(24) {
          ["Illuminate\Events\EventServiceProvider"]=>
          bool(true)
          ["Illuminate\Log\LogServiceProvider"]=>
          bool(true)
          ["Illuminate\Routing\RoutingServiceProvider"]=>
          bool(true)
          ["Illuminate\Auth\AuthServiceProvider"]=>
          bool(true)
          ["Illuminate\Cookie\CookieServiceProvider"]=>
          bool(true)
          ["Illuminate\Database\DatabaseServiceProvider"]=>
          bool(true)
          ["Illuminate\Encryption\EncryptionServiceProvider"]=>
          bool(true)
          ["Illuminate\Filesystem\FilesystemServiceProvider"]=>
          bool(true)
          ["Illuminate\Foundation\Providers\FormRequestServiceProvider"]=>
          bool(true)
          ["Illuminate\Foundation\Providers\FoundationServiceProvider"]=>
          bool(true)
          ["Illuminate\Notifications\NotificationServiceProvider"]=>
          bool(true)
          ["Illuminate\Pagination\PaginationServiceProvider"]=>
          bool(true)
          ["Illuminate\Session\SessionServiceProvider"]=>
          bool(true)
          ["Illuminate\View\ViewServiceProvider"]=>
          bool(true)
          ["Facade\Ignition\IgnitionServiceProvider"]=>
          bool(true)
          ["Fideloper\Proxy\TrustedProxyServiceProvider"]=>
          bool(true)
          ["Fruitcake\Cors\CorsServiceProvider"]=>
          bool(true)
          ["Carbon\Laravel\ServiceProvider"]=>
          bool(true)
          ["NunoMaduro\Collision\Adapters\Laravel\CollisionServiceProvider"]=>
          bool(true)
          ["App\Providers\AppServiceProvider"]=>
          bool(true)
          ["App\Providers\AuthServiceProvider"]=>
          bool(true)
          ["App\Providers\EventServiceProvider"]=>
          bool(true)
          ["App\Providers\RouteServiceProvider"]=>
          bool(true)
          ["Illuminate\Queue\QueueServiceProvider"]=>
          bool(true)
        }
        ["deferredServices":protected]=>
        array(105) {
          ["Illuminate\Broadcasting\BroadcastManager"]=>
          string(48) "Illuminate\Broadcasting\BroadcastServiceProvider"
          ["Illuminate\Contracts\Broadcasting\Factory"]=>
          string(48) "Illuminate\Broadcasting\BroadcastServiceProvider"
          ["Illuminate\Contracts\Broadcasting\Broadcaster"]=>
          string(48) "Illuminate\Broadcasting\BroadcastServiceProvider"
          ["Illuminate\Bus\Dispatcher"]=>
          string(33) "Illuminate\Bus\BusServiceProvider"
          ["Illuminate\Contracts\Bus\Dispatcher"]=>
          string(33) "Illuminate\Bus\BusServiceProvider"
          ["Illuminate\Contracts\Bus\QueueingDispatcher"]=>
          string(33) "Illuminate\Bus\BusServiceProvider"
          ["cache"]=>
          string(37) "Illuminate\Cache\CacheServiceProvider"
          ["cache.store"]=>
          string(37) "Illuminate\Cache\CacheServiceProvider"
          ["cache.psr6"]=>
          string(37) "Illuminate\Cache\CacheServiceProvider"
          ["memcached.connector"]=>
          string(37) "Illuminate\Cache\CacheServiceProvider"
          ["command.cache.clear"]=>
          string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
          ["command.cache.forget"]=>
          string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
          ["command.clear-compiled"]=>
          string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
          ["command.auth.resets.clear"]=>
          string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
          ["command.config.cache"]=>
          string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
          ["command.config.clear"]=>
          string(61) "Illuminate\Foundation\Providers\ConsoleSupportServiceProvider"
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 10
ibucoin

直接用request()或者注入来获取

3年前 评论
aab

为什么要 new 呢?这样会生成了一个全新的对象,如果你想要获取 request 对象,有很多中方法, app('request') 或者 request()

3年前 评论

直接依赖注入获取当前的请求实例就行了吧。你这样new Request()是创建了一个新的空的请求实例。试试这样。

use Illuminate\Http\Request;
public function report(Throwable $exception,Request $request)
 {
       var_dump($request);
       die;
       parent::report($exception);
 }
3年前 评论
岁月流沙

思路不对啊,new Request(),这不就是全新对象,那当然什么都没

依赖注入 $request、使用全局帮助函数request()、app('request')三种方法均可得到请求对象

3年前 评论

$url = \request()->url();

3年前 评论

楼上说的对

3年前 评论
ruke

楼上说的对

3年前 评论

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