我正在尝试在我的 Laravel 应用中实现 darryldecode/laravelshoppingcart。它在 laravel 7 上工作正常,但现在我无法让它工作。我收到的错误是:
<块引用>Illuminate\Contracts\Container\BindingResolutionException
Unresolvable dependency resolving [Parameter #0 [ <required> $session ]] in class Darryldecode\Cart\Cart
我们在考虑 https://github.com/darryldecode/laravelshoppingcart#instances 准则的情况下开发了一个 cartserviceprovider,并在服务提供商处使用以下代码:
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 是通过传递单例应用程序->singleton ...... session()->getId()
我用下面的代码实现了一个 Cart 类
class Cart extends DarryldecodeCart implements JsonSerializable
{
/**
* Get the current instance.
*
* @return $this
*/
public function instance()
{
return $this;
}
感谢任何指导。