首页 > 解决方案 > 错误无法解析的依赖解析[参数#0 [$session ]] 包 darryldecode / laravelshoppingcart

问题描述

我试图在我的 Laravel 应用程序中实现darryldecode/laravelshoppingcart。它在 laravel 7 上运行良好,但现在我无法让它工作。我收到的错误是:

Illuminate\Contracts\Container\BindingResolutionException
Unresolvable dependency resolving [Parameter #0 [ <required> $session ]] in class Darryldecode\Cart\Cart

我们开发了一个 cartserviceprovider,考虑到https://github.com/darryldecode/laravelshoppingcart#instances指南,并在服务提供商处使用以下代码:

public function register()
{
    $this->app->singleton(Cart::class, function ($app) {
        return new Cart(
            $app['session'],
            $app['events'],
            'cart',
            session()->getId()
        );
    });

    $this->app->alias(Cart::class, 'cart');
}

Darryldecode\Cart\Cart 库显示以下代码以符合要求:

public function __construct($session, $events, $instanceName, $session_key, $config)
{
    $this->events = $events;
    $this->session = $session;
    $this->instanceName = $instanceName;
    $this->sessionKey = $session_key;
    $this->sessionKeyCartItems = $this->sessionKey . '_cart_items';
    $this->sessionKeyCartConditions = $this->sessionKey . '_cart_conditions';
    $this->config = $config;
    $this->currentItem = null;
    $this->fireEvent('created');
}

而且我相信 $session 是通过传递单例 app->singleton ...... session() ->getId()

我使用下面的代码来实现一个类 Cart

class Cart extends DarryldecodeCart implements JsonSerializable
{
    /**
     * Get the current instance.
     *
     * @return $this
     */
    public function instance()
    {
        return $this;
    }

任何指导表示赞赏。

标签: laravelshopping-cart

解决方案


推荐阅读