Laravel购物车 - 检查会话数组是否为空

时间:2017-11-19 02:52:51

标签: php laravel session

我正在与Laravel进行在线购物项目,但是如果我没有在购物车中放入任何东西(例如在插入和移除购物车中的商品之前),则会出现问题:

Example #1

cart.blade.php:

@if(!Session::has('cart'))
<div class="container" style="margin-top: 25px;width: 40%;">
    <div class="container-fluid">
        <div class="panel panel-default">
            <div class="panel-body">
                <center>
                    <h4>Your shopping cart is empty :|</h4>
                    <a href="{{ route('index') }}">back to the homepage</a>
                </center>
            </div>
        </div>
    </div>
</div>
@else
...........
@endif

我添加到购物车后,我将货物取出,直到购物车变空。

Example #2

像这样(在购物车中插入和删除商品后,不会删除此表格):

Example #3

应该是这样的&#34;你的购物车是空的。&#34;

StoreController.php:

<?php

........... ...
... .. . . ...
public function Cart()
{
    $interest = Products::OrderByRaw('RAND()')->take(2)->get();

    return view('shop.cart', compact('interest'));
}

..... .....
... .. ..
public function deleteCart($id)
{
    $cart = Session::get('cart');
    unset($cart[$id]);
    Session::put('cart', $cart);
    Session::flash('success', 'item has been removed.');

    return redirect()->back();
}

删除项目后的数组使用dd($cart)

[]

感谢您回答我的问题! :)

2 个答案:

答案 0 :(得分:0)

用于渲染会话购物车数据的任何刀片文件 你必须做这样的事情

@if(count($cart) > 0)
    <div> whatever your message is like shopping cart is empty </div>
@else
     //loop the session cart array and display it
     @foreach($c as $cart)
          <p> {{ $c }} </p>
     @endforeach
@endif

答案 1 :(得分:0)

通过更改

解决了这个问题
@if (! Session :: has ('cart'))

@if (! Session :: has ('cart') || empty (Session :: get ('cart')))