Laravel模块的配置文件

时间:2018-09-22 09:57:43

标签: laravel laravel-5

我需要在模块的配置中获取文件的密钥。我使用nWidart包创建了[Test] [TestCaseSource(typeof(CalculatorTests), nameof(CalculatorTestCaseData))] [TestCaseSource(typeof(CalculatorTests), nameof(CalculatorTestCaseDataWithZero))] public void Calculate_Success(int x, int y, int expected) { // arrange/act int result = Calculator.Multiply(x, y); // assert result.Should().Be(expected, because: $"Multiply {x} and {y} should be {expected}"); } 模块。这是User函数

registerConfig

我创建了一个名为protected function registerConfig() { $this->publishes([ __DIR__.'/../Config/config.php' => config_path('user.php'), ], 'config'); $this->mergeConfigFrom( __DIR__.'/../Config/config.php', 'user' ); } 的文件,该文件返回带有键menu.php的数组,然后尝试了此操作

items

它们都返回null。我也尝试了dd(config('user::config.name')) dd(config('user::menu.items')) 中的php artisan vendor-publish,但是它仍然返回null。如何退回钥匙?

更新

如果我只是这样做:UserServiceProvider,我将获得配置数组的完整数组,并可以在其中看到我的软件包配置文件。但是config()配置文件不在其中

2 个答案:

答案 0 :(得分:3)

在您的serviceProvider中,注册方法。

    $this->mergeConfigFrom(
        __DIR__ . '/../config/master.php',
        'master'
    );

    // Merge configs
    $this->mergeConfigFrom(
        __DIR__ . '/../config/slave.php',
        'slave'
    );

在config文件夹中创建两个文件 slave.php

    <?php
return [
    'menu' => [
        'OP1',
        'OP2',
        'OP3',
        'OP4',
    ]
];

master.php     //您要加载的其他任何配置

运行php artisan config:cache

并使用

  

dd(config('slave.menu'));   dd(config('master.XXX'));

这将输出

array:4 [▼
  0 => "OP1"
  1 => "OP2"
  2 => "OP3"
  3 => "OP4"
]

答案 1 :(得分:0)

return [
'name' => 'Blog',
'en_name'=>'Blog',
'icon'=>'comment',
'color1'=>'EF6F6C',
'color2'=>'EF6F6C',
'route'=>'blog',
'disable' => false,

'subs'=>[
    ['name'=>'All Posts','route'=>'blog/list'],
    ['name'=>'All Categories','route'=>'category/list']
]

];