我必须从购物车中删除产品,但我遇到了以下错误:尝试获取非对象的属性“id”(查看:/home/acer/test/project_basket/basket/resources/views/cart.blade.php)。我也尝试以不同的方式,...删除会话,但我不知道似乎有点困难,因为我只需要删除一个产品。对于购物车中添加的每一个相同的产品,我都会创建徽章,每次都会增加一。购物车.blade.php@foreach($products as $product)<tr> <td><img src="https://via.placeholder.com/400x200/" class="img-cart"></td> <td><strong>{{ $product['item']['title'] }}</strong></td> <td> <form class="form-inline"> <input class="form-control" type="text" value="{{ $product['qty'] }}" style="margin-right: 20px" > <!--<button rel="tooltip" class="btn btn-default"><i class="fa fa-pencil"></i></button>--> <form method="POST" action="{{ route('remove.item', $product->id) }}" > @csrf {{ method_field('DELETE') }} <input type="submit" value="Delete" onclick="return confirm('Are you sure?')" class="btn btn-primary" /> </form> </form> </td> <td>${{ $product['price'] }}</td> </tr>@endforeach产品控制器.php<?phpnamespace App\Http\Controllers;use App\Cart;use App\Product;use Illuminate\Http\Request;use Session;class ProductController extends Controller{ /** *@return \Illuminate\Http\Response */ public function index() { $products = Product::all(); return view('home', ['products'=> $products]); } public function getAddToCart(Request $request, $id) { $product = Product::find($id); $oldCart = Session::has('cart') ? Session::get('cart') : null; $cart = new Cart($oldCart); $cart->add($product, $product->id); $request->session()->put('cart', $cart); return redirect()->route('home'); }
3 回答
噜噜哒
TA贡献1784条经验 获得超7个赞
你必须这样使用
<form method="POST" action="{{route('remove.item',['product'=>$product['id']])}}" >
或者
<form method="POST" action="{{route('remove.item',['product'=>$product->id])}}" >
倚天杖
TA贡献1828条经验 获得超3个赞
尝试替换$product->id
为$product['id']
. 所以这一行:
<form method="POST" action="{{ route('remove.item', $product->id) }}" >
对此进行更改:
<form method="POST" action="{{ route('remove.item', $product['id']) }}" >
达令说
TA贡献1821条经验 获得超6个赞
修改你的代码如下
购物车.blade.php
<form method="POST" action="{{ route('remove.item', $product) }}" >
@csrf
{{ method_field('DELETE') }}
<input type="submit" value="Delete" onclick="return confirm('Are you sure?')" class="btn btn-primary" />
</form>
路线
Route::get('/destroy/{product}', [
'uses' => 'ProductController@destroy',
'as' => 'remove.item']);
那么它应该可以解决你的问题
- 3 回答
- 0 关注
- 148 浏览
添加回答
举报
0/150
提交
取消