Laravel 服务容器绑定原语不适用于 Mailchimp

问题描述 投票:0回答:1

我们有以下绑定原语

use NZTim\Mailchimp\Mailchimp;
use ReCaptcha\ReCaptcha;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     */
    public function register(): void
    {
        app()->when(Mailchimp::class)
            ->needs('$apikey')
            ->give(config('services.mailchimp.apikey'));
        app()->when(ReCaptcha::class)
            ->needs('$secret')
            ->give(config('services.recaptcha.secret'));
    }
}

验证码正在运行。但是使用 Mailchimp 我们收到以下错误:

use NZTim\Mailchimp\Mailchimp;
$mc = app(Mailchimp::class);

“需要 Mailchimp API 密钥 - 使用 'MC_KEY' .env 值”

class Mailchimp
{
    protected MailchimpApi $api;

    public function __construct($apikey, $api = null)
    {
        if (!is_string($apikey)) {
            throw new MailchimpException("Mailchimp API key is required - use the 'MC_KEY' .env value");
        }
        if (is_null($api)) {
            $api = new MailchimpApi($apikey);
        }
        $this->api = $api;
    }
}

++++++++

更新,我们尝试了以下更新,仍然有同样的问题。

app()->when(Mailchimp::class)
        ->needs('$apikey')
        ->giveConfig('services.mailchimp.apikey');
laravel mailchimp laravel-10
1个回答
0
投票

当需要注入配置值时,可以使用 giveConfig 方法:

$this->app->when(Mailchimp::class)
    ->needs('$apikey')
    ->giveConfig('services.mailchimp.apikey');
© www.soinside.com 2019 - 2024. All rights reserved.