iT邦幫忙

2021 iThome 鐵人賽

DAY 13
0
自我挑戰組

從零開始學習php+Laravel 8系列 第 13

[Day 13] Update 更新資料

  • 分享至 

  • xImage
  •  

現在有幾個collection在ProductController.php中

public function getData(){
        return collect([
            collect([
                'id' => 0
                'fruit' => 'apple',
                'price' => '每袋50元',
                'origin' => '日本'
            ]),
            collect([
                'id' => 1
                'fruit' => 'banana',
                'price' => '每袋70元',
                'origin' => '台灣'
            ])
        ]);
    }

終端機執行php artisan route:list查看路由路徑
https://ithelp.ithome.com.tw/upload/images/20210928/20142046AdG0EJk6Gn.png

Update

從route list可以看到Update要使用PUT Method,路徑products/{product}是指網址後面還要指定的id參數({product})
現在假設要更新id為0的資料,到Postman建立新的測試api頁,選擇PUT Method,選擇Body/x-www-form-urlencoded(在laravel架構PUT/PATCH Method的資料傳遞方式)打上要更新的資料。
https://ithelp.ithome.com.tw/upload/images/20210928/20142046kd08b49gLd.png
檢查資料是否有傳遞到後端

public function update(Request $request, $id)
    {
        dd($request->all()); //dd()和dump用法相似,但使用dd()顯示資料後就會停止
        dump('不會被顯示出來');
    }

確定有取得資料
https://ithelp.ithome.com.tw/upload/images/20210928/20142046PYEBSi0PFN.png

public function update(Request $request, $id)
    {
        $update = $request->all();
        $data = $this -> getData();
        $selected = $data -> where('id',$id)->first(); //選擇指定id的資料,first()可以直接取得該筆資料
        $selected = $selected->merge(collect($update)); //將指定的資料更新成新的資料
        return response($selected);
    }

資料就被更新完成了~
https://ithelp.ithome.com.tw/upload/images/20210928/20142046z8y7MokyNu.png


上一篇
[Day 12] Create新增資料
下一篇
[Day 14] Delete 刪除資料
系列文
從零開始學習php+Laravel 830
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言