我在页面顶部有io.ReaderFrom
按钮,用于存储和显示用户购物车的产品数量。它也可以在未登录的用户身上看到,他们可以将产品放在购物车中。在Laravel 4.2中,这很有效,但是我已经迁移到Laravel 5.4而且我没有遇到这个问题。
这是功能
Cart()
我认为这是
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;
}
}
错误
未定义的变量:cartCount
为什么这个版本适用于版本4.2,但不适用于版本5.4 Laravel?
@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
返回dd(Session::get('cart', array()))
如果购物车中没有商品,这是正确的。当有产品时,它会以数组形式显示。
我确定购物车中有产品,因为Array ()
返回
dd(Session::get('cart', array()))
答案 0 :(得分:0)
请将其更新为{{$ cartCount或&#39; 0&#39; }}。因此,如果在用户第一次加载页面时没有设置变量,它将显示0并且您不会收到任何错误。
答案 1 :(得分:0)
我想你可以试试这个:
@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
希望这对你有用!!!