尝试从laravel中的包中获取配置值返回null

时间:2014-02-20 18:12:43

标签: php laravel laravel-4

我正在为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',

);

非常感谢任何帮助。

1 个答案:

答案 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"];
}