我必須從購物車中刪除產品,但我遇到了以下錯誤:嘗試獲取非對象的屬性“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 關注
- 211 瀏覽
添加回答
舉報
0/150
提交
取消