[英]How to get “individual cart items from a column” in the database using Gloudemans Shopping Cart
I am using Gloudemans Shopping Cart package and trying to get "individual cart items from a cart column" in the database, like ' name, price, qty ', but for some reasons when I do:我正在使用Gloudemans 购物车 package并尝试在数据库中获取“购物车列中的单个购物车项目”,例如“名称、价格、数量”,但由于某些原因,当我这样做时:
{{ $order['cart]['name'] }}
I get an error saying: Illegal string offset 'name'我收到一条错误消息:非法字符串偏移“名称”
But if I do:但如果我这样做:
{{ $order['cart'] }}
I get the whole cart item: {"027c91341fd5cf4d2579b49c4b6a90da":{"rowId":"027c91341fd5cf4d2579b49c4b6a90da","id":1,"name":"web development","qty":1,"price":70,"weight":1,"options":[],"discount":0,"tax":0,"subtotal":70},"370d08585360f5c568b18d1f2e4ca1df":{"rowId":"370d08585360f5c568b18d1f2e4ca1df","id":2,"name":"graphics","qty":1,"price":100,"weight":1,"options":[],"discount":0,"tax":0,"subtotal":100}}
我得到了整个购物车项目: {"027c91341fd5cf4d2579b49c4b6a90da":{"rowId":"027c91341fd5cf4d2579b49c4b6a90da","id":1,"name":"web development","qty":1,"price":70,"weight":1,"options":[],"discount":0,"tax":0,"subtotal":70},"370d08585360f5c568b18d1f2e4ca1df":{"rowId":"370d08585360f5c568b18d1f2e4ca1df","id":2,"name":"graphics","qty":1,"price":100,"weight":1,"options":[],"discount":0,"tax":0,"subtotal":100}}
Please, how do I solve this?请问,我该如何解决这个问题?
Here are my files:这是我的文件:
CheckoutController.php CheckoutController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\AccountOrder;
use Cart;
class CheckoutController extends Controller
{
public function myOrder($id)
{
$orders = auth()->user()->orders;
return view('frontend/academic/myOrder')
->with('orders', $orders);
}
}
ShoppingController.php ShoppingController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Category;
use App\AccountOrder;
use Cart;
class ShoppingController extends Controller
{
//function to add course to cart
public function add_to_cart(Request $request, $pid)
{
$product = Category::findOrFail($pid);
// insert into cart
$cart = Cart::add([
'id' => $product->id,
'name' => $product->name,
'price' => $product->price,
'qty' => 1,
'weight' => 1,
]);
if(route('cart.success', $pid))
{
if($request->status === 'successful')
{
$data = auth()->user()->orders()->create([
'cart' => Cart::content(),
'transaction_id' => $request->transaction_id,
'status' => $request->status
]);
//Cart::destroy();
dd($data);
return view('frontend/academic/success');
}
}
return redirect('cart');
}
}
myOrder.blade.php myOrder.blade.php
@extends('layouts.front');
@section('content')
<div class="container-fluid">
<div class="row medium-padding120 bg-border-color">
<div class="container">
<div class="order">
<h2 class="h1 order-title text-center">My Order</h2>
@foreach ($orders as $order)
<div class="card mb-5">
<div class="card-header bg-info">
Purchased Date: {{$order->created_at->toFormattedDateString()}}
</div>
<div class="card-body">
<ul class="list list-group">
<li class="list-group-item">
//Here is my Problem
{{$order['cart']['name']}} {{$order['cart']['price']}}
<span class="badge"></span>
</li>
</ul>
</div>
<div class="card-footer bg-info">
<?php $variable = $order->cart ?>
//Here is also my Problem
<strong>Total Price: {{ $order['cart']['subtotal'] }} </strong>
</div>
</div>
@endforeach
</div>
</div>
</div>
</div>
@endsection
Try to use a second @foreach
to iterate through the order's cart:尝试使用第二个@foreach
来遍历订单的购物车:
@foreach ($order['cart'] as $cartItem)
<li class="list-group-item">
{{$cartItem->name}} {{$cartItem->price}}
<span class="badge"></span>
</li>
@endforeach
You have to use @foreach
for individual cart item您必须对单个购物车项目使用@foreach
@foreach ($order['cart'] as $key=>$cart)
<li class="list-group-item">
{{$cart->name}} {{$cart->price}}
<span class="badge"></span>
</li>
@endforeach
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.