Class 'Illuminate\Support\Facades\Http' 未在 Laravel 7.x 中找到

Class 'Illuminate\Support\Facades\Http' not found in Laravel 7.x

在我的 Laravel 应用程序中,作为计划任务,我想在我的自定义 class 中发出 Http 请求,但我得到

Class 'Illuminate\Support\Facades\Http' not found {"exception":"[object] (Symfony\Component\Debug\Exception\FatalThrowableError(code: 0): Class 'Illuminate\Support\Facades\Http' not found

这是我的习惯class

<?php

namespace App\MyModels\GetData;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;

class Test
{
    public function __invoke()
    {
        Log::info("Cron executed : ");
        $response = Http::get("https://google.com");
        Log::info(print_r($response, true));
    }
}

在 Laravel 文档中,它说:

To make requests, you may use the get, post, put, patch, and delete methods. First, let's examine how to make a basic GET request:

use Illuminate\Support\Facades\Http;

$response = Http::get('http://test.com');

根据评论,您可能安装了 non-generic/minimal Laravel 版本。

  1. 备份您当前的 composer.json(从项目根目录)
  2. 打开composer.json
  3. 转到require属性
  4. 将所有 laravel/* 属性替换为默认属性:
"laravel/framework": "^7.0",
"laravel/tinker": "^2.0"
  1. 保存文件并运行composer update && php artisan config:cache

之后应该正确安装所有外墙 :)


如果您想创建一个新的 Laravel 应用程序作为进一步参考,请不要选择自定义分发版(它可能不包含 OP 的所有功能)。使用默认存储库:

composer create-project laravel/laravel MyLaravelProject

对我来说,这个问题与以下事实有关(虽然我认为该项目在 Laravel 的版本 7 上)但我似乎在 [=16= 的版本 6.x 上].更新到最新版本为我解决了这个问题。 Link to the GitHub issue that resolved my issue

虽然问题是关于版本 7 的,但我仍然觉得这可能对某些人有所帮助

尝试在您的控制器中导入 Http,如下所示。

use Illuminate\Support\Facades\Http;

希望能解决您的问题。