购物车会话和显示购物车中的商品数量在Laravel中未定义

时间:2017-07-25 07:07:35

标签: laravel laravel-5

我在页面顶部有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()))

2 个答案:

答案 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

希望这对你有用!!!

相关问题