繁体   English   中英

将 laravel 从 5.5 更新到 5.7 时出错(未定义 class 常量“HEADER_CLIENT_IP”)

[英]Getting error while updating laravel from 5.5 to 5.7 (Undefined class constant 'HEADER_CLIENT_IP')

我收到这个错误。

未定义 class 常量“HEADER_CLIENT_IP”脚本@php artisan package:发现处理返回错误代码 1 的自动加载转储后事件

我变了

app\Http\Middleware\TrustedProxies.php by:

    <?php

  namespace App\Http\Middleware;

  use Illuminate\Http\Request;
  use Fideloper\Proxy\TrustProxies as Middleware;

  class TrustProxies extends Middleware
  {
    protected $proxies;
    protected $headers = Request::HEADER_X_FORWARDED_ALL;
  }

这是 my.composerjson 文件

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=7.0.0",
        "fideloper/proxy": "~3.3",
        "laravel/framework": "5.7.*",
        "laravel/tinker": "~1.0",
        "tymon/jwt-auth": "^0.5.12"
    },
    "require-dev": {
        "filp/whoops": "~2.0",
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "~1.0",
        "phpunit/phpunit": "~6.0",
        "symfony/thanks": "^1.0"
    },
    "autoload": {
        "classmap": [
            "database/seeds",
            "database/factories"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "extra": {
        "laravel": {
            "dont-discover": [
            ]
        }
    },
    "scripts": {
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate"
        ],
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover"
        ]
    },
    "config": {
        "preferred-install": "dist",
        "sort-packages": true,
        "optimize-autoloader": true
    } }

我仍在处理同样的错误。 大佬能看出来问题出在哪里吗?

在composer.json更改fideloper / proxy

"fideloper/proxy": "~3.3",

"fideloper/proxy": "^4.0",

在那之后

composer update

如果你们在更新到 laravel 9.0 时遇到此错误,请从 composer.json 中删除以下代码行

"fideloper/proxy": "^4.4.1",

并在终端运行 composer update 命令

composer update

然后,更改use Fideloper\Proxy\TrustProxies as Middleware; use Illuminate\Http\Middleware\TrustProxies as Middleware; 在文件app\Http\Middleware\TrustProxies.php file

1)将您的composer.json更改为以下内容

"php": ">=7.1.3",
"fideloper/proxy": "^4.0",
"laravel/framework": "5.7.*",
"laravel/tinker": "~1.0",

2)将您的App \\ Http \\ Middleware \\ TrustProxies.php更改为以下内容

<?php

namespace App\Http\Middleware;

use Illuminate\Http\Request;
use Fideloper\Proxy\TrustProxies as Middleware;

class TrustProxies extends Middleware
{
    /**
     * The trusted proxies for this application.
     *
     * @var array|string
     */
    protected $proxies;
    /**
     * The headers that should be used to detect proxies.
     *
     * @var int
     */
    protected $headers = Request::HEADER_X_FORWARDED_ALL;
}

3)从配置目录中删除名称为trustedproxy.php的文件(如果存在)

4)从您的应用程序目录在控制台中运行以下命令

composer update

5)此步骤不是必需的,但是它将清除所有缓存和自动加载文件

php artisan clear-compiled

composer dump-autoload

php artisan cache:clear

php artisan config:clear

php artisan view:clear

您是否尝试更新作曲家

composer update

并转储自动加载?

composer dump-autoload

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM