```markup @section('scriptsAfterJs') @endsection ``` ``` 由於刪除是比較危險的動作,所以,一般都會先確認過後再刪除。 1. 第5行,因為在`then()`中,是無法直接用`$(this).data('id')`來取的商品編號,所以,我們先用`var product_id=$(this).data('id');`來將取得編號設給自訂變數`product_id`,以便等會在`then()`中使用。 2. 第13行,如果用戶點擊「確定」按鈕,自訂的`willDelete `變數值就會是 `true`,否則為 `false`,換言之如果是`false`我們就直接跳出,不做刪除。 3. 第16行,我們利用axios的`delete`送出`delete`動作,並執行「`/cart/編號`」的路徑,如此,便會呼叫對應的刪除路由設定。 4. 第18行,刪除完就進行重整動作,以便看到新的清單內容。 ![](https://campus-xoops.tn.edu.tw/uploads/tad_book3/image/43/pic108.png) 2. 接著修改路由`\專案\routes\web.php`,在裡面加入一組刪除購物車品項的設定(第9行),請注意,刪除的動詞要用`delete`喔! ``` ```php Route::pattern('product', '[0-9]+'); Route::pattern('id', '[0-9]+'); Route::get('/', 'ProductController@index')->name('index'); Route::get('/product', 'ProductController@index')->name('product.index'); Route::get('/product/{product}', 'ProductController@show')->name('product.show'); Route::post('/cart/store', 'CartController@store')->name('cart.store'); Route::get('/cart', 'CartController@index')->name('cart.index'); Route::delete('/cart/{id}', 'CartController@destroy')->name('cart.destroy'); Auth::routes(); Route::get('/home', 'ProductController@index')->name('home'); ``` ``` 3. 接著修改控制器`\專案\app\Http\Controllers\CartController.php` ```php public function destroy($id, Request $request) { $request->user()->carts()->where('product_id', $id)->delete(); return []; } ``` - 目前登入使用者是`$request->user()`,因為我們有設模型關聯,所以,可以輕鬆抓出目前登入者的所有購物車資料,即`$request->user()->carts()`最後利用`where('product_id', $id)`抓出指定資料並用`delete()`刪除之即可。 - 記得要在index()中加入`Request $request`,因為我們要利用`$request->user()`來抓取目前登入者的資訊。 [![到GitHub觀看此單元程式異動](https://campus-xoops.tn.edu.tw/uploads/tad_book3/image/34/to_github.png)](https://github.com/tad0616/myshop/commit/a4eaae72e4a02b0db46870ad6913557e6fe9ae33)
```php Route::pattern('product', '[0-9]+'); Route::pattern('id', '[0-9]+'); Route::get('/', 'ProductController@index')->name('index'); Route::get('/product', 'ProductController@index')->name('product.index'); Route::get('/product/{product}', 'ProductController@show')->name('product.show'); Route::post('/cart/store', 'CartController@store')->name('cart.store'); Route::get('/cart', 'CartController@index')->name('cart.index'); Route::delete('/cart/{id}', 'CartController@destroy')->name('cart.destroy'); Auth::routes(); Route::get('/home', 'ProductController@index')->name('home'); ``` ``` 3. 接著修改控制器`\專案\app\Http\Controllers\CartController.php` ```php public function destroy($id, Request $request) { $request->user()->carts()->where('product_id', $id)->delete(); return []; } ``` - 目前登入使用者是`$request->user()`,因為我們有設模型關聯,所以,可以輕鬆抓出目前登入者的所有購物車資料,即`$request->user()->carts()`最後利用`where('product_id', $id)`抓出指定資料並用`delete()`刪除之即可。 - 記得要在index()中加入`Request $request`,因為我們要利用`$request->user()`來抓取目前登入者的資訊。 [![到GitHub觀看此單元程式異動](https://campus-xoops.tn.edu.tw/uploads/tad_book3/image/34/to_github.png)](https://github.com/tad0616/myshop/commit/a4eaae72e4a02b0db46870ad6913557e6fe9ae33)
進階搜尋