我正在为Laravel 4创建一个包,它将有一个配置文件,用户可以在其中输入用于包所使用的服务的api密钥。但是我无法访问配置值。每当我尝试访问该值时,它总是返回null。以下是我的代码:
这是服务提供商的register方法,其中调用配置值:
public function register()
{
$this->app->bind('Datumbox', function($app){
return new \Carwyn\LaravelDatumbox\Lib\DatumboxAPI(
$this->app['config']->get('laravel-datumbox::api_key')
);
});
}
我遇到问题的部分是
$this->app['config']->get('laravel-datumbox::api_key')
我从我的包的src / config目录中的config.php文件中调用api_key值的部分。
我的配置文件如下:
<?php
return array(
'api_key' => 'apikeyhere',
);
非常感谢任何帮助。
答案 0 :(得分:2)
您的配置文件应位于:
src/config/config.php
并确保你也有:
public function boot()
{
$this->package('carwyn/laravel-datumbox');
}
另请注意,Laravel将相对于ServiceProvider文件查找配置文件(它使用内部__DIR__.'../../'
),地雷与正常路径不同,所以我不得不:
$this->package('pragmarx/glottos', 'pragmarx/glottos', __DIR__.'/../../../..');
我将此方法作为服务提供程序中的帮助程序,它不使用get
方法,但它可能没有太大区别:
public function getConfig($key)
{
return $this->app['config']["pragmarx/glottos::$key"];
}