Laravel 从 5.2 更新到 5.3 后,app('cart') 未在构造函数和服务提供商文件中提供来自会话的正确数据
app('cart') not giving proper data from the session in the constructor and in service provider file after Laravel update from 5.2 to 5.3
在升级其正常运行之前,我们无法从应用程序 ('cart') 获取数据。
我们正在为购物车使用 cartalyst 包,我们将整个购物车对象存储在会话中,但是当我们尝试进入购物车服务提供商时,它给了我们空白对象,但在 Laravel 调试器中它显示它在那里以及其他页面(如产品)页面和主页它工作正常但在购物车页面中它在从 Laravel 5.3 从 5.2
更新后不工作
<?php
namespace App\Cart\Providers;
use App;
use Illuminate\Support\ServiceProvider;
class CartServiceProvider extends ServiceProvider
{
/**
* Register the service provider.
* @return void
*/
public function register()
{
App::bind('App\Cart\Interfaces\CartServiceInterface', function () {
return new \App\Cart\Services\CartService(app('cart'));
});
}
}
问题是因为我们无法在构造函数和服务提供者中访问会话变量,因为我在中间件组中声明了会话中间件,然后加载,所以我从中删除并在 kernel.php 中添加了中间件选项
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
];
在升级其正常运行之前,我们无法从应用程序 ('cart') 获取数据。 我们正在为购物车使用 cartalyst 包,我们将整个购物车对象存储在会话中,但是当我们尝试进入购物车服务提供商时,它给了我们空白对象,但在 Laravel 调试器中它显示它在那里以及其他页面(如产品)页面和主页它工作正常但在购物车页面中它在从 Laravel 5.3 从 5.2
更新后不工作<?php
namespace App\Cart\Providers;
use App;
use Illuminate\Support\ServiceProvider;
class CartServiceProvider extends ServiceProvider
{
/**
* Register the service provider.
* @return void
*/
public function register()
{
App::bind('App\Cart\Interfaces\CartServiceInterface', function () {
return new \App\Cart\Services\CartService(app('cart'));
});
}
}
问题是因为我们无法在构造函数和服务提供者中访问会话变量,因为我在中间件组中声明了会话中间件,然后加载,所以我从中删除并在 kernel.php 中添加了中间件选项
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
];