Skip to content

TypeError: array_replace_recursive() in Laravel 11 with php-flasher-toastr #bug #281

Open

Description

@Gnoth2n5

Hello, When using php-flasher-toastr with Laravel 11, I encounter a TypeError: array_replace_recursive(): Argument #2 must be of type array, int given error in Illuminate\Translation\FileLoader at line 130.
My environment:

  • PHP: 8.3.7
  • Laravel: 11.4.2
  • php-flasher/flasher-toastr-laravel: 2.1
  • php-flasher/flasher-laravel: 2.1
    The error disappears when I uninstall php-flasher/flasher-toastr-laravel and php-flasher/flasher-laravel. Alternatively, ensuring that the value passed to with() is always a string (e.g., with('success', 'Message')) prevents the error.

Activity

  1. changed the title [-]TypeError: array_replace_recursive() in Laravel 11 with php-flasher-toastr[/-] [+]TypeError: array_replace_recursive() in Laravel 11 with php-flasher-toastr #bug[/+] on Mar 27, 2025
  2. yoeunes commented on Mar 27, 2025

    @yoeunes
    Member

    Hi @Gnoth2n5, Thank you for reporting this issue. I've tried to reproduce the error on my end but haven't been successful yet.

    To help me better understand and fix this problem, could you please provide:

    1. The complete stack trace of the error
    2. A minimal code sample that triggers the issue (or ideally a link to a public repository where I can reproduce it)
    3. Any specific notification code you're using when the error occurs
  3. Gnoth2n5 commented on Mar 28, 2025

    @Gnoth2n5
    Author

    Hi @yoeunes , Thank you for your response and for looking into this issue. Below are the details you requested to help reproduce and fix the problem.

    ##Link Repo: https://github.com/Gnoth2n5/repo-error

    ### Complete Stack Trace
    Here is the complete stack trace of the error:
    [2025-03-28 10:12:15] local.ERROR: array_replace_recursive(): Argument #2 must be of type array, int given {"userId":2,"exception":"[object] (TypeError(code: 0): array_replace_recursive(): Argument #2 must be of type array, int given at D:\BT\Website\Project_Laravel\testdemo\vendor\laravel\framework\src\Illuminate\Translation\FileLoader.php:130)
    [stacktrace]
    #0 D:\BT\Website\Project_Laravel\testdemo\vendor\laravel\framework\src\Illuminate\Translation\FileLoader.php(130): array_replace_recursive(Array, 1)
    #1 D:\BT\Website\Project_Laravel\testdemo\vendor\laravel\framework\src\Illuminate\Collections\Traits\EnumeratesValues.php(822): Illuminate\Translation\FileLoader->Illuminate\Translation\{closure}(Array, 'D:\\BT\\Website\\P...', 1)
    #2 D:\BT\Website\Project_Laravel\testdemo\vendor\laravel\framework\src\Illuminate\Translation\FileLoader.php(128): Illuminate\Support\Collection->reduce(Object(Closure), Array)
    #3 D:\BT\Website\Project_Laravel\testdemo\vendor\laravel\framework\src\Illuminate\Translation\FileLoader.php(69): Illuminate\Translation\FileLoader->loadPaths(Array, 'en', 'messages')
    #4 D:\BT\Website\Project_Laravel\testdemo\vendor\laravel\framework\src\Illuminate\Translation\Translator.php(335): Illuminate\Translation\FileLoader->load('en', 'messages', '')
    #5 D:\BT\Website\Project_Laravel\testdemo\vendor\laravel\framework\src\Illuminate\Translation\Translator.php(248): Illuminate\Translation\Translator->load('
    ', 'messages', 'en')
    #6 D:\BT\Website\Project_Laravel\testdemo\vendor\laravel\framework\src\Illuminate\Translation\Translator.php(173): Illuminate\Translation\Translator->getLine('*', 'messages', 'en', 'S\xE1\xBB\xADa th\xC3\xA0nh c\xC3...', Array)
    #7 D:\BT\Website\Project_Laravel\testdemo\vendor\laravel\framework\src\Illuminate\Translation\Translator.php(127): Illuminate\Translation\Translator->get('messages.S\xE1\xBB\xADa ...', Array, 'en', true)
    #8 D:\BT\Website\Project_Laravel\testdemo\vendor\php-flasher\flasher-laravel\Translation\Translator.php(22): Illuminate\Translation\Translator->has('messages.S\xE1\xBB\xADa ...', 'en')
    #9 D:\BT\Website\Project_Laravel\testdemo\vendor\php-flasher\flasher\EventDispatcher\EventListener\TranslationListener.php(90): Flasher\Laravel\Translation\Translator->translate('S\xE1\xBB\xADa th\xC3\xA0nh c\xC3...', Array, 'en')
    #10 D:\BT\Website\Project_Laravel\testdemo\vendor\php-flasher\flasher\EventDispatcher\EventListener\TranslationListener.php(48): Flasher\Prime\EventDispatcher\EventListener\TranslationListener->applyTranslations(Object(Flasher\Prime\Notification\Envelope), 'en', Array)
    #11 D:\BT\Website\Project_Laravel\testdemo\vendor\php-flasher\flasher\EventDispatcher\EventListener\TranslationListener.php(30): Flasher\Prime\EventDispatcher\EventListener\TranslationListener->translateEnvelope(Object(Flasher\Prime\Notification\Envelope))
    #12 D:\BT\Website\Project_Laravel\testdemo\vendor\php-flasher\flasher\EventDispatcher\EventDispatcher.php(40): Flasher\Prime\EventDispatcher\EventListener\TranslationListener->__invoke(Object(Flasher\Prime\EventDispatcher\Event\PresentationEvent))
    #13 D:\BT\Website\Project_Laravel\testdemo\vendor\php-flasher\flasher\Response\ResponseManager.php(41): Flasher\Prime\EventDispatcher\EventDispatcher->dispatch(Object(Flasher\Prime\EventDispatcher\Event\PresentationEvent))
    #14 D:\BT\Website\Project_Laravel\testdemo\vendor\php-flasher\flasher\Flasher.php(50): Flasher\Prime\Response\ResponseManager->render('html', Array, Array)
    #15 D:\BT\Website\Project_Laravel\testdemo\vendor\php-flasher\flasher\Http\ResponseExtension.php(57): Flasher\Prime\Flasher->render('html', Array, Array)
    #16 D:\BT\Website\Project_Laravel\testdemo\vendor\php-flasher\flasher-laravel\Middleware\FlasherMiddleware.php(24): Flasher\Prime\Http\ResponseExtension->render(Object(Flasher\Laravel\Http\Request), Object(Flasher\Laravel\Http\Response))
    #17 D:\BT\Website\Project_Laravel\testdemo\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(209): Flasher\Laravel\Middleware\FlasherMiddleware->handle(Object(Illuminate\Http\Request), Object(Closure))
    #18 D:\BT\Website\Project_Laravel\testdemo\vendor\php-flasher\flasher-laravel\Middleware\SessionMiddleware.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
    #19 D:\BT\Website\Project_Laravel\testdemo\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(209): Flasher\Laravel\Middleware\SessionMiddleware->handle(Object(Illuminate\Http\Request), Object(Closure))
    #20 D:\BT\Website\Project_Laravel\testdemo\vendor\laravel\framework\src\Illuminate\Routing\Middleware\SubstituteBindings.php(51): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
    #21 D:\BT\Website\Project_Laravel\testdemo\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(209): Illuminate\Routing\Middleware\SubstituteBindings->handle(Object(Illuminate\Http\Request), Object(Closure))
    #22 D:\BT\Website\Project_Laravel\testdemo\vendor\laravel\framework\src\Illuminate\Auth\Middleware\Authenticate.php(64): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
    #23 D:\BT\Website\Project_Laravel\testdemo\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(209): Illuminate\Auth\Middleware\Authenticate->handle(Object(Illuminate\Http\Request), Object(Closure))
    #24 {main}

    ##To reproduce the error:
    Create project laravel 11
    Install php-flasher/flasher-laravel version 2.1 and php-flasher/flasher-toastr-laravel version 2.1.
    Install Breeze Start Kit
    In the ProfileController (app/Http/Controllers/ProfileController.php), modify the update method to use with('success', ...) instead of with('status', ...):

    The error occurs when updating the profile, but it does not occur when the library is removed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions