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

pop picture pop · Oct 17, 2019 · Viewed 10.5k times · Source

So my Mailable view is throwing this error - and this is all I have on my hands. It was working fine while I was on Lumen 5.8, so my guess is that it happened after upgrading to Laravel 6.

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

My blade file looks like this:

@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

where obviously no part of the code is trying to call that function.

My composer.json looks like this:

{
    "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
}

where the laravel/helpers are also included now, separately. Nothing has helped so far. Any ideas what is causing this error?

Answer

craig-sen picture craig-sen · Nov 23, 2019

Bit late to the party but:

as others have mentioned str_ and array_ helpers have been moved to a seperate package. If you don't wish to use that package after updating to laravel 6 you have to clear the views that were compiled using the old helper methods.

composer dump-autoload

then

php artisan view:clear

worked for me