我如何从我的购物车中的项目生成可下载的PDF文件?

问题描述 投票:0回答:1

我使用的是 dompdf 生成一个可下载的pdf文件,从我的 multi-vendor eCommerce 我在QuotationController中定义了$cartItems,但还是遇到了这个错误。$cartItems是在CartController中定义的,我打算将CartController的项目获取到pdf中。

这就是错误所在。

Undefined variable: cartItems (View: C:\\laragon\www\procure\resources\views\cart\quote.blade.php)

这里是QuoteController代码。

<?php

namespace App\Http\Controllers;

use Barryvdh\DomPDF\PDF;
use Darryldecode\Cart\Cart;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

class QuotationController extends Controller
{


    public function quote(Request $request)
    {

        $product = DB::table('products')->get();
        $cartItems = \Cart::session(auth()->id())->getContent();

        $pdf = \PDF::loadView('cart.quote');
        return $pdf->download('quotation.pdf');

        //return view('cart.quote');
    }

}

Herees is CartController:

<?php

namespace App\Http\Controllers;

use App\Product;
use Darryldecode\Cart\Cart;

class CartController extends Controller
{
    public function add(Product $product)
    {
        // add the product to cart
        \Cart::session(auth()->id())->add(array(
            'id' => $product->id,
            // 'img' => $product->cover_img,
            'name' => $product->name,
            'price' => $product->price,
            'quantity' => 1,
            'attributes' => array(),
            'associatedModel' => $product,
        ));

        return redirect()->route('cart.index');
    }

    public function index()
    {

        $cartItems = \Cart::session(auth()->id())->getContent();
        view()->share('cartItems', $cartItems);

        return view('cart.index', compact('cartItems'));
    }
    public function destroy($itemId)
    {

        \Cart::session(auth()->id())->remove($itemId);

        return back();
    }

    public function update($rowId)
    {

        \Cart::session(auth()->id())->update($rowId, [
            'quantity' => [
                'relative' => false,
                'value' => request('quantity'),
            ],
        ]);

        return back();
    }

    public function checkout()
    {
        return view('cart.checkout');
    }

}

最后是刀片文件(quote.blade.php)。

<section class="shopping-cart">
    <div class="container">
        <div class="row">
            <div class="col-md-12">
                <div class="cart-table table-responsive">
                    <table class="table">
                        <thead>
                            <tr>
                                <th class="t-pro">Product</th>
                                <th class="t-price">Price</th>
                                <th class="t-qty">Quantity</th>
                                <th class="t-total">Total</th>
                                <th class="t-rem"></th>
                            </tr>
                        </thead>
                        <tbody>
                            @foreach ($cartItems as $item)
                            <tr>
                                <td class="t-pro d-flex">

                                    <div class="t-content">
                                        <p class="t-heading"><a href="">{{ $item->name }}</a></p>

                                    </div>
                                </td>
                                <td class="t-price">KES {{ $item->price }} </td>
                                <td class="t-qty">
                                    <div class="qty-box">
                                        <div class="quantity buttons_added">

                                            <form action="{{route('cart.update', $item->id)}}" method="get">
                                                <input name="quantity" type="number" value="{{ $item->quantity }}">

                                                <input class="button" type="submit" value="save">

                                            </form>
                                        </div>
                                    </div>
                                </td>
                                <td class="t-total">{{Cart::session(auth()->id())->get($item->id)->getPriceSum()}}</td>
                                <td class="t-rem"><a href="{{ route('cart.destroy', $item->id) }}"><i class="far fa-trash-alt"></i></a></td>
                            </tr>

                            @endforeach
                        </tbody>
                    </table>
                </div>
            </div>

            <div class="col-md-4">
                <div class="coupon">
                    <h6>Discount Coupon</h6>
                    <p>Enter your coupon code if you have one</p>
                    <form action="#">
                        <input type="text" name="zip" value="" placeholder="Your Coupon">
                        <button type="button">Apply Code</button>
                    </form>

                    <a href="{{route('quote-download') }}">Print Quotation</a>
                </div>
            </div>
            <div class="col-md-4">
                <div class="crt-sumry">
                    <h5>Cart Summery</h5>
                    <ul class="list-unstyled">
                        <li>Subtotal <span>KES {{\Cart::session(auth()->id())->getTotal()}}</span></li>
                        <li>Shipping & Tax <span>0.00</span></li>
                        <li>Grand Total <span>KES {{\Cart::session(auth()->id())->getTotal()}}</span></li>
                    </ul>
                    <div class="cart-btns text-right">
                        <button onclick="location.href='{{route('home')}}'" class="up-cart">Update Cart</button>
                        <button onclick="location.href='{{route('cart.checkout')}}'" class="chq-out ">Checkout</button>
                    </div>
                </div>
            </div>
        </div>
    </div>
</section>
e-commerce dompdf laravel-7
1个回答
0
投票

请访问这个 https:/github.comarafkarimHTML-to-PDF。 我刚刚在我的类似项目中应用了这个东西。

© www.soinside.com 2019 - 2024. All rights reserved.