【问题标题】:Empty cart content when submitted提交时清空购物车内容
【发布时间】:2018-08-26 05:02:17
【问题描述】:

我有一个非常基本的购物车,只需在提交时发送一封电子邮件。但是我无法清除这些项目,我在结帐页面上有一个 if 语句来清空它,但它似乎无法正常工作。

这是该刀片的代码:

    <article class="lead-in-aside">
            @if(session()->has('success'))
                (Cart::content('empty'));
            @endif
            <h2>Check Out</h2>
            <form action="{{ route('checkout submit') }} " method="POST">
                {{ csrf_field()}}
                <fieldset>
                    <div class="table-wrapper">
                        <div class="table-inner">
                            <table class="table-content">
                                <tbody>
                                    <tr>
                                        <th>Title</th>
                                        <th>Name</th>
                                        {{-- <th>Quantity</th> --}}
                                    </tr>
                                    @foreach (Cart::content() as $item)
                                    <tr class="highlight">
                                        <td>{{$item->model->title}} </td>
                                        <input type="hidden" name="{{$item->model->title}}">
                                        <td>{{$item->model->name}}</td>
                                        <input type="hidden" name="{{$item->model->name}}">
                                        {{-- <td>{{ $item->qty }}</td> --}}
                                    </tr>
                                    @endforeach
                                </tbody>
                            </table>
                        </div>
                    </div>
                </fieldset>

这是控制器中的代码:

        Mail::send('emails.rental', [
        'name'=>$request->firstname,
        'company'=>$request->companyname,
        'phone'=>$request->phone,
        'email'=>$request->email,
        'msg'=>$request->message,
        'rental'=>$request->name,
        'pickup'=>$request->pickup_date,
        'return'=>$request->return_date,
        'location'=>$request->location
    ], 


        function($newRental) use ($request){
        $newRental->from($request->email, $request->firstname);


    });

    // Session::flash('success', 'Your Email was Sent!');

    return redirect()->back()->with('success', 'Your rental request has been sent');
 }

【问题讨论】:

  • 你为什么要这样做?你能解释更多吗?

标签: laravel laravel-5 cart shopping-cart


【解决方案1】:

我猜你正在使用第三方购物车包,比如https://github.com/Crinsane/LaravelShoppingcart

如果这是您正在使用的包,从文档看来它是您应该用来清除购物车的 destroy() 函数?

我的建议是在您完成发送电子邮件后尝试在控制器中清除购物车,而不是在刀片文件中。所以删除这部分刀片文件:

@if(session()->has('success'))
    (Cart::content('empty'));
@endif

你的控制器的结尾可能会变成这样:

Cart::destroy();
return redirect()->back()->with('success', 'Your rental request has been sent');

【讨论】:

  • 那行得通。是的,我正在使用那个包,但是因为我不需要它的全部功能,所以我稍微修改了它来满足我的需要。谢谢。
猜你喜欢
  • 2011-04-09
  • 1970-01-01
  • 2011-05-12
  • 1970-01-01
  • 1970-01-01
  • 2018-08-29
  • 2016-03-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多