我需要在模块的配置中获取文件的密钥。我使用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()
配置文件不在其中
答案 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']
]
];