Lumen/Laravel6:调用未定义的函数array_except()

Lumen/Laravel 6: Call to undefined function array_except()

所以我的 Mailable 视图抛出了这个错误 - 这就是我手上的全部。当我使用 Lumen 5.8 时它运行良好,所以我猜测它是在升级到 Laravel 6.

后发生的

Call to undefined function array_except() (View: /kunden/182801_60322/tu/uat/api/resources/views/mail/invite-employee.blade.php)

我的 blade 文件如下所示:

@extends('mail.master')

@section('content')
<tr>
    <td align="left" style="border: 1px solid #dddee5; border-bottom: 2px solid #cecfd9; padding; 20px;">
        <div class="padded">
            <p>
            {!! nl2br(e($data->message)) !!}
            </p>
        </div>
    </td>
<tr>
<tr>
    <td align="left" bgcolor="#eaeaf2" class="padded">
        <p style="margin-bottom: 5px;" class="cta-label">{{ $data->copy->click }}</p>
        <div class="cta-link">
            <a style="color: #337BE9;" class="cta-link--a" href="{{ $data->appUrl }}/{{ $data->route }}/{{ $data->verificationCode }}">{{ $data->appUrl }}/{{ $data->route }}/{{ $data->verificationCode }}</a>
        </div>
        <p style="font-size: 12px; margin-top: 10px;">{{ $data->copy->mistake }}</p>
    </td>
</tr>
@endsection

显然代码中没有任何部分试图调用该函数。

我的 composer.json 看起来像这样:

{
    "name": "laravel/lumen",
    "description": "The Laravel Lumen Framework.",
    "keywords": ["framework", "laravel", "lumen"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=7.3.9",
        "laravel/lumen-framework": "^6.0",
        "vlucas/phpdotenv": "^3.3",
        "firebase/php-jwt": "^4.0",
        "guzzlehttp/guzzle": "^6.3",
        "illuminate/mail": "6.0.0",
        "phanan/cascading-config": "~2.0",
        "nesbot/carbon": "^2.0",
        "neitanod/forceutf8": "2.0.1",
        "maatwebsite/excel": "^3.1",
        "mpdf/mpdf": "^8.0",
        "tecnickcom/tcpdf": "^6.3",
        "laravel/helpers": "^1.1"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "phpunit/phpunit": "~5.0",
        "mockery/mockery": "~0.9"
    },
    "autoload": {
        "psr-4": {
            "App\": "app/"
        }
    },
    "autoload-dev": {
        "classmap": [
            "tests/",
            "database/"
        ]
    },
    "scripts": {
        "post-root-package-install": [
            "php -r \"copy('.env.example', '.env');\""
        ]
    },
    "minimum-stability": "dev",
    "prefer-stable": true
}

其中 laravel/helpers 现在也单独包含在内。到目前为止没有任何帮助。知道是什么导致了这个错误吗?

所有 str_ 和 array_ 助手都已移至新的 laravel/helpers Composer 包并从新版本 (6.0) 的框架中删除

您可以添加助手包:

composer require laravel/helpers

我看到你添加了包尝试转储自动加载:

composer dump-autoload

Upgrade 6.0 - String & Array Helpers Package

好的,在@aynber 建议在所有地方进行 grep 之后,我发现 storage/framework/views 中的一些视图有行 array_except。在删除该目录中的所有内容并按照@sharhabphp 的建议重新生成 autoload.php 后,一切都再次正常工作。

谢谢大家!

聚会有点晚了但是:

正如其他人提到的,str_ 和 array_ 助手已移至单独的包中。如果您不想在更新到 laravel 6 后使用该包,则必须清除使用旧的辅助方法编译的视图。

composer dump-autoload

然后

php artisan view:clear

对我有用