找不到方法

时间:2017-10-23 08:30:30

标签: php laravel laravel-5.4

我创建自己的ServiceProvider,以便在启动类时发送参数形式:

class InstagramServiceProvider extends ServiceProvider
{
    protected $defer = true;

    public function boot()
{
    $this->publishes([
        __DIR__.'/../config/config.php' => config_path('instagram.php'),
    ]);
}
public function register()
{
    $this->app->bind('instagram.client', function ($app) {
        return new InstagramClient([
            'apiKey' => $app['config']->get('instagram.clientId'),
            'apiSecret' => $app['config']->get('instagram.clientSecret'),
            'apiCallback' => $app['config']->get('instagram.redirectUri'),
            'scope' => $app['config']->get('instagram.scope'),
       ]);
    });
}
public function provides()
{
        return array('instagram.client');
}
}

我无法从配置中获取数据?我做错了什么?

1 个答案:

答案 0 :(得分:0)

Laravel有一个专门为此作业构建的功能,名为config()。您可以按如下方式使用它:

public function register()
{
    $this->app->bind('instagram.client', function ($app) {
        return new InstagramClient([
            'apiKey' => config('instagram.clientId'),
            'apiSecret' => config('instagram.clientSecret'),
            'apiCallback' => config('instagram.redirectUri'),
            'scope' => config('instagram.scope'),
       ]);
    });
}

或者您也可以使用括号表示法:

$app['config']['instagram']['clientId']

有关详细信息,请参阅文档:https://laravel.com/docs/5.4/configuration#accessing-configuration-values