簡體   English   中英

Laravel array_merge(): 參數 #2 不是 ServiceProvider.php 中的數組

[英]Laravel array_merge(): Argument #2 is not an array In ServiceProvider.php

我不能再做 php artisan serve 了,它說:

在 ServiceProvider.php 第 59 行:

 array_merge(): Argument #2 is not an array

第59行代碼在ServiceProvider.php中:

$this->app['config']->set($key, array_merge(require $path, $config));

我不明白我的 ServiceProvider.php 有什么問題,我沒有改變任何東西。

我希望有人能幫助我。

檢查config/文件夾中的文件,其中一個沒有返回數組。

試試這個

這里使用了is_array方法。

$this->app['config']->set($key, array_merge(require $path, is_array($config) ? $config : [$config]))

is_array($config) ? $config : [$config]

如果不想更改框架文件,請檢查配置文件夾中的config文件,其中一個文件返回單個值而不是數組(必須返回數組)

試試這個,

通過 Composer 對某些軟件包進行的任何新安裝都可能導致 vendor 下的文件發生沖突。

因此,通過“require”中的“composer.json”刪除最后安裝的包:{}並更新作曲家。

這對我有幫助。

這對我有用。 首先,編輯代碼 laravel/framework/src/Illuminate/Support/ServiceProvider.php

if (! ($this->app instanceof CachesConfiguration && $this->app->configurationIsCached())) {
        $config = $this->app->make('config');
        
        $configkey = $config->get($key, []);
        $configkey = is_array($configkey) ? $configkey : [$configkey];

        $config->set($key, array_merge(
            require $path, $configkey
        ));

    }

保存。 並運行作曲家安裝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM