将laravel从5.5更新到5.7时出错(未定义类常量'HEADER_CLIENT_IP')

时间:2018-10-25 08:22:06

标签: php laravel xampp

我收到此错误。

  

未定义的类常量'HEADER_CLIENT_IP'脚本@php artisan   package:discover处理后返回的autoload-dump事件   错误代码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;
  }

这是我的.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
    } }

我仍在处理相同的错误。你们能弄清楚问题出在哪里吗?

3 个答案:

答案 0 :(得分:3)

在composer.json 更改fideloper / proxy

来自

SELECT TwI_TwIId,
       TwI_TwrId,
       TwI_MagId,
       SUM(TwI_Ilosc) AS Ilosc,
       SUM(TwI_Wartosc) AS Wartosc,
       SUM(TwI_Braki) AS Braki,
       SUM(TwI_Rezerwacje) AS Rezerwacje,
       SUM(TwI_Zamowienia) AS Zamowienia
FROM cdn.TwrIlosci
WHERE twi_magid = 1
GROUP BY TwI_TwrId,
         TwI_TwIId,
         TwI_MagId
ORDER BY TwI_TwIId;

收件人

"fideloper/proxy": "~3.3",

那次奔跑

"fideloper/proxy": "^4.0",

答案 1 :(得分:1)

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

if (scrollY > 0 && scrollY < 700) {
                            float alpha = (scrollY / 700f);
                            int resultColor = ColorUtils.blendARGB(ContextCompat.getColor(getApplicationContext(), R.color.colorWhite), ContextCompat.getColor(getApplicationContext(), R.color.colorPrimary), alpha);
                            toolbar.setBackgroundColor(resultColor);
                            Log.i("LOG", "run: " + scrollY + "/" + odlScrollY);

                        } else if (scrollY < 50 && odlScrollY > scrollY) {
                            Log.i("LOG", "run: " + scrollY + "/" + odlScrollY);
                            toolbar.setBackgroundColor(ContextCompat.getColor(getApplicationContext(), R.color.colorWhite));
                        }

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

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

3)从名称为 trustedproxy.php config 目录中删除文件

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

<?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;
}

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

composer update

答案 2 :(得分:0)

您尝试更新作曲家

composer update

并转储自动加载?

composer dump-autoload
相关问题