【问题标题】:Laravel array_merge(): Argument #2 is not an array In ServiceProvider.phpLaravel array_merge():参数 #2 不是 ServiceProvider.php 中的数组
【发布时间】:2018-12-18 08:43:44
【问题描述】:

我不能再做 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 不是数组
  • 什么是 $config??
  • 显示你的服务注册方法
  • 这是来自laravel/framework/src/Illuminate/Support/ServiceProvider.php 吗?不会改变那里的任何东西。检查所有配置文件是否有效
  • 是的,如果来自laravel/framework/src/Illuminate/Support/ServiceProvider.php

标签: php laravel laravel-5 array-merge


【解决方案1】:

检查config/ 文件夹中的文件,其中一个没有返回数组。

【讨论】:

  • 这是正确答案
【解决方案2】:

试试这个

在这里使用is_array 方法。

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

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

如果不想更改框架文件,请检查您的配置文件 config文件夹一文件返回单个值不是数组(必须是 返回数组)

【讨论】:

  • 不要对该文件进行任何更改。问题肯定出在其他地方。仔细阅读错误消息,查看日志并在您的问题中添加错误。
  • 成功了!非常感谢,之后我必须生成一个密钥。但它奏效了!
  • 我建议编辑文件laravel/framework/src/Illuminate/Support/ServiceProvider.php,这是一个 Laravel 核心文件,可能/将在下一次作曲家更新时被覆盖 - 您的所有修改都将丢失.
【解决方案3】:

试试这个,

通过 Composer 对某些软件包进行任何新安装都可能导致 vendor 下的文件发生冲突。

所以通过“require”中的“composer.json”删除最后安装的包:{}并更新composer。

这对我有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 2022-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多