购物车会话和显示购物车中的物品数量返回undefined在Laravel
问题描述:
我有Cart()
按钮在页面的顶部,它存储和显示用户购物车的产品数量。在未登录的用户中也可以看到,他们可以将产品放在购物车中。在Laravel 4.2中,这个工作很完美,但我已经迁移到Laravel 5.4,没有我遇到过这个问题。购物车会话和显示购物车中的物品数量返回undefined在Laravel
这是函数
protected function setupLayout()
{
$user = self::getCurrentUser();
View::share('user', $user);
// this is the part which cause error
View::share('cartCount', count(Session::get('cart', array())));
}
public static function isLoggedIn()
{
$user = Auth::user();
if ($user !== null) {
return true;
} else {
return false;
}
}
这我有我的观点
@if(!Auth::check())
<li><a href="{{ URL::to('/cart') }}">Cart ({{ $cartCount }})</a></li>
@else
<li><a href="{{ URL::to('/cart') }}">Cart ({{ $cartCount }})</a></li>
@endif
错误
未定义的变量:cartCount
任何我deas为什么这个版本可以在4.2版本上运行,但是不能在版本5.4 Laravel上运行?
dd(Session::get('cart', array()))
return Array()
如果购物车中没有产品,这是正确的。当有产品显示在阵列中时。
我敢肯定,有产品在购物车,因为dd(Session::get('cart', array()))
回报
array:2 [▼
2 => array:5 [▶]
227 => array:5 [▶]
]
答
我想你可以试试这个:
@if(!Auth::check())
<li><a href="{{ URL::to('/cart') }}">Cart ({{ isset($cartCount) ? $cartCount : 0}})</a></li>
@else
<li><a href="{{ URL::to('/cart') }}">Cart ({{ isset($cartCount) ? $cartCount : 0}})</a></li>
@endif
更新:
protected function setupLayout()
{
$user = self::getCurrentUser();
$data = array(
'user' => $user,
'cartCount' => count(Session::get('cart', array())),
);
View::share('data', $data);
}
@if(!Auth::check())
<li><a href="{{ URL::to('/cart') }}">Cart ({{ $data['cartCount']}})</a></li>
@else
<li><a href="{{ URL::to('/cart') }}">Cart ({{ $data['cartCount']}})</a></li>
@endif
希望这对你的工作!
你在哪里定义'setupLayout'和'isLoggedIn'? – madpoet
'isLoggedIn'有问题。 'setupLayout'没有被使用。应该删除。对不起,它已被删除 – Ivan
setupLayout没有被使用?这可能是问题,因为那是你分享变量的地方:) – madpoet