iT邦幫忙

2021 iThome 鐵人賽

DAY 6
0
Software Development

Laravel 新手初見 API系列 第 6

Day06-CRUD API 實作(六)CRUD 實作(下)

大家好~
今天要來完成我們留言的讀取、更新與刪除功能囉。

Controller

Read

查詢全部留言
public function index()
{
    $messages = Message::with('user')->get();

    return response($messages, Response::HTTP_OK);
}
檢視單一筆留言
public function show($messageId)
{
    $message = Message::with('user')->findOrFail($messageId);

    return response($message, Response::HTTP_OK);
}

查詢的部分有分成兩種功能,
分別是查詢全部留言與檢視單一筆留言,

在查詢的時候用 with() 可以一起將關聯的資料取出來喔,
雖然不特別使用 with() 也是可以獲得有關聯關係的資料就是了,
差異就下次再做說明吧~

Update

  • 流程:
    1. 驗證 Request 表單
    2. 建立指定 Message 的 Model
    3. 更新 Message
    4. 回傳 Response
public function update(Request $request, $messageId)
{
    $validated = $request->validate([
        'title' => 'required|string|max:50',
        'content' => 'required|string|max:255'
    ]);

    $message = Auth::user()->messages()->findOrFail($messageId);

    $message->update($validated);

    return response($messages, Response::HTTP_OK);
}

Delete

public function destroy($messageId)
{
    $message = Auth::user()->messages()->findOrFail($messageId);

    $message->delete();

    return response([
        'message'=>'message has deleted.'
    ],Response::HTTP_OK);
}

這樣整個 CRUD 就都完成囉!

雖然功能都是正常可用的,
不過如果要調整回傳的資料格式,
或者統一資料格式,
都還要在每個 function 中做調整,
這樣好像有點麻煩呢...
那麼...
明天來介紹統一回傳格式的方式吧!

今天差不多就先這樣,
大家明天見啦~
若文章有任何問題,
還請大家不吝賜教!


上一篇
Day05-CRUD API 實作(五)Route 規劃與 CRUD 實作(上)
下一篇
Day07-Response 最重要的是整整齊齊-API Resources
系列文
Laravel 新手初見 API30

尚未有邦友留言

立即登入留言