#將DB方式改為Model的方式執行Query Builder

1.增加引用Models資料夾下的Cart及CartItem

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/a337650c-a9d3-4fd9-84a0-cbbf2f2a7f1e/1628071278310.jpg

2.接著到store去做修改

首先建立一個$cart變數並利用find找到cart_id

接著透過cart_id去新增cartItem,因為model本身會創建cartItem_id跟時間,故我們只要新增product_id及quantity即可

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/b0ddcad7-67d8-4236-aa85-5e29155cd088/1628071834900.jpg

3.接著修改我們的update,首先先找到cartItem,然後利用fill()函數[這邊的fill指說先填好,但不儲存],減少SQL儲存優化效能,最後再將填好的數字儲存

#這邊找資料庫第三筆,修改為5測試

1629446398637.jpg

1629446435865.jpg

1629446470571.jpg

4.而刪除的方式較為簡單一樣呼叫CartItem並帶入第幾筆$id接著執行刪除

public function destroy($id)
    {
        CartItem::find($id)->delete();
        return response('第'.$id.'筆資料已刪除');
    }

5.接著改CartController的index

public function index()
    {
        $cart = Cart::firstOrCreate();
        return response($cart);

    }

6.接著修改帶出CartItem,而這邊使用的方式利用with,指的是給他一個字段的時候,根據這個字串去尋找CartModel對應的關聯資料然後撈出來,利用with的好處未來做複雜的處理的時候可以更節省效能,解決N+1Query