首页 > 解决方案 > Laravel 合并 Laravel 包中的配置

问题描述

我正在 laravel 上写一个包,它需要安装一些包。

我想用应用程序的已发布副本覆盖自己的包配置文件,并在我的包服务提供商的 register 方法中使用 mergeConfigFrom 方法。但它不像我预期的那样工作

app/config/publishedConfig.php

return [
  'dashboard_url' => 'home',
  'logout_url' => 'logout',
  'login_url' => 'login'
];

包/供应商/路径/to/config/config.php

return [
   'dashboard_url' => 'dashboard/login',
   'logout_url' => 'dashboard/logout',
   'login_url' => 'mongodb-login'
]

然后在我的包服务提供商的注册方法中,我使用如下所示的mergeConfigFrom在运行时覆盖publishedConfig:

public function register(){

    $this->mergeConfigFrom(
         __DIR__.'/config/adminlte-logo.php','publishedConfig'
    );
}

之后我使用dd(config('publishedConfig'))助手来获得合并的结果但结果没有改变。

预期结果是:

   'dashboard_url' => 'dashboard/login',
   'logout_url' => 'dashboard/logout',
   'login_url' => 'mongodb-login'

我会感谢任何解决我问题的人。

提前致谢

标签: phplaravelpackageconfig

解决方案


最后我用--force标签的方式覆盖了它。

php artisan vendor:publish --tag=config --force

推荐阅读